запуск виджета по нажатию кнопки |
Здравствуйте, гость ( Вход | Регистрация )
запуск виджета по нажатию кнопки |
Litkevich Yuriy |
14.11.2008, 10:40
Сообщение
#11
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
для описаной изначально задачи, это выглядит так:
вобщем логика: или в переводе с русского на С++ так:создал виджет 1 создал виджет 2 соеденил сигнал 1-го со слотом 2-го показал 1-ый запустил цикл событий приложения (соображай где все эти действия нужно проделать!) И всеВ классе MyWid1 создал сигнал void clicked(); с седенил его с сигналом кнопки: QObject::connect(q,SIGNAL(clicked()),this,SIGNAL(clicked())); где q кнопка (нумеровать ее нет нужды, т.к. в каждом классе она своя) и того, когда по кнопке первого виджета щелкнут, происходит следующее: QPushButton::clicked() -> MyWid1::clicked() -> MyWid2::show() т.е. отобразится второй виджет |
|
|
guest13 |
14.11.2008, 10:48
Сообщение
#12
|
Студент Группа: Новичок Сообщений: 13 Регистрация: 9.10.2008 Пользователь №: 386 Спасибо сказали: 0 раз(а) Репутация: 0 |
или в переводе с русского на С++ так: И всекогда я делал так, то получал следующее
тогда, я и сделал так, как описал выше.... p.s. пока я писал, ты уже добавил)) В классе MyWid1 создал сигнал void clicked(); с седенил его с сигналом кнопки: т.е. я просто создал лишний слот) значит всё-таки намудрил ) но зато, теперь кроме вызова второго виджета, я могу ещё какое-нибудь действо совершить) большое спасибо! |
|
|
Litkevich Yuriy |
14.11.2008, 10:57
Сообщение
#13
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
p.s. пока я писал, ты уже добавил)) да что-то инет уменя при тормаживает, пришлось делить на порции.Обрати внимание, мы соеденили сигнал MyWid1::clicked() со слотом MyWid2::show(), которого вроде нет у нас, но так как MyWid2 является наследником QWidget, он всвою очередь распологает таким слотом, именно этот слот и вызывается. Ради эксперимента можешь переопределить этот слот, например так:
реализация:
|
|
|
guest13 |
14.11.2008, 11:39
Сообщение
#14
|
Студент Группа: Новичок Сообщений: 13 Регистрация: 9.10.2008 Пользователь №: 386 Спасибо сказали: 0 раз(а) Репутация: 0 |
ога) спасибо) я именно это и имел в виду, что теперь, благодаря тому, что у меня есть слот, который принимает сигнал от первого виджета, я могу не просто открыть второй виджет, а ещё какое-нибудь действо совершить.
ещё маленький вопросик.... с чего такие большие объемы ехе-файлов? когда использовал #include <QtGui> вообще около 2 мб. А когда отдельно все библиотеки подключал <QWidget>, <QApplication> и прочее - размер уменьшился до 780 кб....всё-таки, мне кажется, приложение должно весить значительно меньше.... |
|
|
Litkevich Yuriy |
14.11.2008, 12:29
Сообщение
#15
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
с чего такие большие объемы ехе-файлов? по всей видимости ты собираешь отладочную версию, в pro-файл напиши так:
тогда у тебя по команде make будет собиратся и отладочная версия и релизная, при этом результат работы MOC, UIC, RCC и объектники будут акуратно раскладыватся по подкаталогам, а консоль будет создаватся только для отладочной версии. Незабудь, что после изменения pro-файла надо выполнить qmake |
|
|
guest13 |
14.11.2008, 15:20
Сообщение
#16
|
Студент Группа: Новичок Сообщений: 13 Регистрация: 9.10.2008 Пользователь №: 386 Спасибо сказали: 0 раз(а) Репутация: 0 |
спасибо) теперь до 40 кб упал вес ехе-шника))
тогда ещё нагружу маленьким вопросиком я полагаю, что это приложение при запуске на компах, где нету установленного Qt Developper не будет запускаться, требуя библиотеки.... как можно сделать, чтобы приложение запускалось на всех компах? |
|
|
Litkevich Yuriy |
14.11.2008, 15:31
Сообщение
#17
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
guest13, вопервых тебе понадобятся dll'ки (для виндовоза) см. Асистент
про Qt Developper никогда не слышал. если еще используются плагины Qt (например SQL модуль и т.д.) то читай эту статью, когда ты проведьшь тест на возможность распространять свои программы, буду рад если ты чего-нибудь допишешь в эту статью, вобще в ней нужно написать и о распространении программ вообще, а не только о плагинах. |
|
|
guest13 |
14.11.2008, 15:37
Сообщение
#18
|
Студент Группа: Новичок Сообщений: 13 Регистрация: 9.10.2008 Пользователь №: 386 Спасибо сказали: 0 раз(а) Репутация: 0 |
про Qt Developper никогда не слышал. эм-м... виноват немного не так выразился http://qdevelop.org вот эта штука была на диске от книги Шлее |
|
|
Litkevich Yuriy |
14.11.2008, 15:42
Сообщение
#19
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Текстовая версия | Сейчас: 22.12.2024, 21:38 |