Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.218.127.141] |
|
Сообщ.
#1
,
|
|
|
1. Можно ли как-то вытянуть дочерний виджет за переделы родительского? Конкретизируя - вытянуть закладки QTabWidget за пределы главного окна.
2. Можно ли как-то убрать тайтл полностью ? Оставить тайтл, но убрать иконку/кнопки закрыть(свернуть) ? 3. Можно ли как-то регулировать поведение приложения в свернутом состоянии ?(появление значка в трее, исчезновение значка из панели задач, реагирование на контрольные клавиши) 4. Подскажите плз где в QDevelop установить переменные окружения QMAKESPEC и т.д. что бы все нормально компилилось. По умолчанию сразу после инсталла никак не хочет, а запускать постоянно через консоль уже надоело. 5. Можно как-то быстро определить позицию курсора относительно других объектов ? Я имею в виду реакцию приложения в случае если курсор наведется на объект(в действительности рисунок, нарисованный на чем-то. Неправильной формы. трудно конечно это назвать объектом, но все же...) неправильной, сложной формы. Допустим на эллипс нарисованный на QPainter. Или без перехвата события и дальнейшей ручной обработки не обойтись ? 6. Если ли стандартный виджет(и если нет, то подскажите реализацию) для окна чата? Окно должно отобрать не только текст, но и картинки(смайлики). 7. Искал, не нашел - есть ли функции расформирования менеджеров компоновок ? Требуется динамически перекомпоновать виджеты. 8. Собрал проэкт в QDevelop. Запускаю екзешник вне его. Появляется ошибка "Приложению не удалось запуститься, поскольку mingwm.dll не найден. Повторная установка приложения может исправить эту проблему." Скомпилил простой пример "Hello world!" Тоже самое. Если запускать через QDevelop все нормально. Для чего используется эта библиотека ? Как исправить? 9. Можно ли как-то получить QTabWidget с возможностью вывода закладок на всех 4х сторонах, а не одной ? Именно один виджет, а не систему из 4х наложенных друг на друга виджетов. 10. Есть QWidget. На нем с применением менеджеров компоновок размещены QPushButton, QLabel и QLineEdit. Что бы все создавать одним оператором всю эту композицию нужно запихнуть в класс. Получится что-то вроде class MyClass : public QWidget { Q_OBJECT public: MyClass(QWidget *parent); ... private: //какие-то поля и методы //слоты и сигналы }; С реализацией расстановки всех остальных виджетов в конструкторе. Основная задача состоит в том что бы упаковать этот класс в библиотеку и в программе динамически ее распаковать. Помогите с хедерфайлом интерфейса класса и части кода главной программы где плагин распаковывается и создается один экземпляр запакованого класса. Иными словами что бы после прочтения dll можно было работать, как если бы он находился в программе: MyClass a; a.show(); Во всех примерах которые я нашел все классы внутри "нематериальные"(их работу мы не видим. мы видим результат их вычислений и т.д.). А здесь когда основные функции не мы реализовываем, а наследуются от QWidget возникают проблемы - наследуемые функции не видны. Ошибка идет еще на этапе компиляции. |
Сообщ.
#2
,
|
|
|
1. Да. Это обычные виджеты.
3. Да - QSystemTrayIcon. 5. Вроде можно. 6. Да - QTextBrowser. 7. Добавляй нужные виджеты к другим менеджерам и они автоматически "переедут" туда. Старые менеджеры просто удали. |
Сообщ.
#3
,
|
|
|
Цитата archimed7592 @ 1. Да. Это обычные виджеты. 1. QDesigner сопротивляется. При написании кода вручную виджеты ведут себя по-другому? |
Сообщ.
#4
,
|
|
|
Цитата Tam-Tam @ 1. Можно ли как-то вытянуть дочерний виджет за переделы родительского? Конкретизируя - вытянуть закладки QTabWidget за пределы главного окна. ээээ... Зачем? Цитата Tam-Tam @ 4. Подскажите плз где в QDevelop установить переменные окружения QMAKESPEC и т.д. что бы все нормально компилилось. По умолчанию сразу после инсталла никак не хочет, а запускать постоянно через консоль уже надоело. Добавляешь в системные переменные окружения |
Сообщ.
#5
,
|
|
|
Цитата Tam-Tam @ 5. Можно как-то быстро определить позицию курсора относительно других объектов ? Я имею в виду реакцию приложения в случае если курсор наведется на объект(в действительности рисунок, нарисованный на чем-то. Неправильной формы. трудно конечно это назвать объектом, но все же...) неправильной, сложной формы. Допустим на эллипс нарисованный на QPainter. Или без перехвата события и дальнейшей ручной обработки не обойтись ? рисовать нужно на QGraphicsView, а фигура должна быть унаследована от QGraphicsItem. В этом случае сама фигура, наследованная от QGraphicsItem, может приниматься события от мышки и клавы. |
Сообщ.
#6
,
|
|
|
Цитата sploid @ рисовать нужно на QGraphicsView, а фигура должна быть унаследована от QGraphicsItem. В этом случае сама фигура, наследованная от QGraphicsItem, может приниматься события от мышки и клавы. 5. Допустим для нарисованного пойдет. А для пиксельных рисунков читаемых из файла? Можно как-то задать контур в пределах которого будет реакция ? -Added Цитата cozzzy @ ээээ... Зачем? 1. Вот с чем, а с мотивацией у меня вопросов нет ) Мне бы найти как можно сделать, а где применить - я найду. Цитата cozzzy @ Добавляешь в системные переменные окружения 4. Подробнее можно ? Где клацнуть и что ввести. |
Сообщ.
#7
,
|
|
|
1. Насколько я знаю, то в винде, чаилд не может вылезти за парента.
2. Можно. Что бы убрать тайтл, нужно у окна задать нужные флаги из этих flags Qt::WindowFlags. Что бы убрать кнопки свернуть и т.д., нужно задать Qt::WindowTitleHint. А вообще для подобных экспериментов есть демка. В QtDemo, раздел Widgets, программа Window Flags 4. Какая ОСь? 5. для этого нужно использовать QGraphicsPixmapItem. |
Сообщ.
#8
,
|
|
|
Цитата sploid @ 4. Какая ОСь? Винда. 8. Собрал проэкт в QDevelop. Запускаю екзешник вне его. Появляется ошибка "Приложению не удалось запуститься, поскольку mingwm.dll не найден. Повторная установка приложения может исправить эту проблему." Скомпилил простой пример "Hello world!" Тоже самое. Если запускать через QDevelop все нормально. Для чего используется эта библиотека ? Как исправить? |
Сообщ.
#9
,
|
|
|
что бы исправить? в переменные добавить путь, где лежит эта дллка.
Открываешь свойства "Мой компьютер", далее закладка "дополнительно", кнопка "переменные среды". Там создаешь новую переменную "QMAKESPEC", и ее значение ставишь "win32-g++". потом в переменную "PATH" добавляешь путь где лежит дллка mingwm.dll ( наверно C:\msys\mingw32\bin ) |
Сообщ.
#10
,
|
|
|
Цитата sploid @ 5. для этого нужно использовать QGraphicsPixmapItem. Найдется хоть один пример реализации того что я описал ? Или схожей задачи ? Или использования QGraphicsPixmapItem ? |
Сообщ.
#11
,
|
|
|
Цитата Tam-Tam @ Цитата sploid @ 5. для этого нужно использовать QGraphicsPixmapItem. Найдется хоть один пример реализации того что я описал ? Или схожей задачи ? Или использования QGraphicsPixmapItem ? в QtDemo раздел Graphics View, пример Ported Canvas. Там используется QGraphicsPixmapItem. Вообще я сейчас пишу софтину, которая использует их систему рисования и все довольно удобно. |
Сообщ.
#12
,
|
|
|
Цитата Tam-Tam @ QDesigner сопротивляется. При написании кода вручную виджеты ведут себя по-другому? С дизайнером вообще отдельный разговор - там есть такая фишка как promote widget. При написание вручную ты можешь делать кое-что, что не можешь сделать в дизайнере. Я вот только, после твоих уточняющих вопросов начинаю сомневаться в том, что я действительно понимаю что именно тебе нужно... |
Сообщ.
#13
,
|
|
|
Цитата archimed7592 @ При написание вручную ты можешь делать кое-что, что не можешь сделать в дизайнере. Я вот только, после твоих уточняющих вопросов начинаю сомневаться в том, что я действительно понимаю что именно тебе нужно... Вопрос возник именно из-за дизайнера. Поскольку он не позволяет такого. Хотя делать все буду вручную. |
Сообщ.
#14
,
|
|
|
Цитата Tam-Tam @ Поскольку он не позволяет такого. Гм... Ещё раз: КАКОГО? Что именно ты хочешь сделать? Какой результат ты хочешь получить? |
Сообщ.
#15
,
|
|
|
Цитата archimed7592 @ Гм... Ещё раз: КАКОГО? Что именно ты хочешь сделать? Какой результат ты хочешь получить? Хочу что бы закладки QTabWidget вылезли за рамки родительского виджета. |
Сообщ.
#16
,
|
|
|
Tam-Tam, ЭТО ОБЫЧНЫЙ ВИДЖЕТ. Возьми пустой виджет с панельки слева, перетяни на форму и будет тебе счастье.
Добавлено Только не говори, что тебе "удобнее" накидывать контролы на таб-виджет, а потом вытаскивать всё целиком на форму. Это бред. |
Сообщ.
#17
,
|
|
|
Цитата archimed7592 @ Tam-Tam, ЭТО ОБЫЧНЫЙ ВИДЖЕТ. Возьми пустой виджет с панельки слева, перетяни на форму и будет тебе счастье Вытяни. Перемести так что бы он частично вылазил за границу формы. Нажми превью. Либо дизайнер работает неправильно, либо сгенериный с формы код будет вести себя так же. Попробовал разные способы вручную. При выводе любого виджета под ним создается простой виджет. При выводе QTabWidget виджет создается так что бы охватывать весь QTabWidget. Т.е. на части где нет закладок виден этот самый созданый виджет. Так что никакого выступания нет. Судя по всему такое реализовать нельзя Разве что как-то извратиться с show() и hide(). Иными словами через 5ю точку. |
Сообщ.
#18
,
|
|
|
Понятно... В общем, тебе делать нечего и ты фигнёй страдаешь .
|
Сообщ.
#19
,
|
|
|
Цитата archimed7592 @ Понятно... В общем, тебе делать нечего и ты фигнёй страдаешь . Нет. Мне просто надо получить пару виджетов с не совсем обычным видом и функциями. 9. Можно ли как-то получить QTabWidget с возможностью вывода закладок на всех 4х сторонах, а не одной ? Именно один виджет, а не систему из 4х наложенных друг на друга виджетов. 10. Есть QWidget. На нем с применением менеджеров компоновок размещены QPushButton, QLabel и QLineEdit. Что бы все создавать одним оператором всю эту композицию нужно запихнуть в класс. Получится что-то вроде class MyClass : public QWidget { Q_OBJECT public: MyClass(QWidget *parent); ... private: //какие-то поля и методы //слоты и сигналы }; С реализацией расстановки всех остальных виджетов в конструкторе. Основная задача состоит в том что бы упаковать этот класс в библиотеку и в программе динамически ее распаковать. Помогите с хедерфайлом интерфейса класса и части кода главной программы где плагин распаковывается и создается один экземпляр запакованого класса. Иными словами что бы после прочтения dll можно было работать, как если бы он находился в программе: MyClass a; a.show(); Во всех примерах которые я нашел все классы внутри "нематериальные"(их работу мы не видим. мы видим результат их вычислений и т.д.). А здесь когда основные функции не мы реализовываем, а наследуются от QWidget возникают проблемы - наследуемые функции не видны. Ошибка идет еще на этапе компиляции. |
Сообщ.
#20
,
|
|
|
Цитата Tam-Tam @ Попробовал разные способы вручную. При выводе любого виджета под ним создается простой виджет. При выводе QTabWidget виджет создается так что бы охватывать весь QTabWidget. Т.е. на части где нет закладок виден этот самый созданый виджет. Так что никакого выступания нет. Судя по всему такое реализовать нельзя Разве что как-то извратиться с show() и hide(). Иными словами через 5ю точку. Ты можешь приложить картинку, на которой было бы понятно - что именно ты хочешь получить от QTabWidget? |
Сообщ.
#21
,
|
|
|
Сообщ.
#22
,
|
|
|
Цитата Tam-Tam @ Примерно такое. А ты это хочешь сделать в рамках именно главного окна приложения? |
Сообщ.
#23
,
|
|
|
Цитата Flex Ferrum @ А ты это хочешь сделать в рамках именно главного окна приложения? Да. Если в рамках главного никак, то с удовольствием послушаю как оно вообще реализуемо. |
Сообщ.
#24
,
|
|
|
Tam-Tam
Делаешь дочерний виджет "окном без рамки". Qt::Window | Qt::FramelessWindowHint Вручную управляешь его координатами при перемещении родительского окна. Надо еще что-то придумать с тем, чтобы родительское окно всегда оставалось активным. |
Сообщ.
#25
,
|
|
|
10 вопрос решил. 9 все-еще не знаю как.
11. Создают ли менеджеры компоновок родительско-дочернюю связь ? При уничтожении виджета уничтожатся ли виджеты которые были размещены менеджерами на нем ? |
Сообщ.
#26
,
|
|
|
11. Да, уничтожаются.
|