Просмотр сообщений
|
Страниц: 1 ... 16 17 [18] 19
|
256
|
Qt / Вопросы новичков / Re: Закрыть виджет
|
: Март 04, 2013, 19:24
|
И вам спасибо! Теперь надо выбрать из всех оптимальных вариантов самый оптимальный. Странно, что для такой в общем-то несложной штуки, требуется привлечение не самых очевидных способов. Но я - не в обиде. Вот еще я узнал пару кустов и лиан в джунглях Qt
|
|
|
258
|
Qt / Вопросы новичков / Re: Закрыть виджет
|
: Март 04, 2013, 14:14
|
Ну тогда надо унаследоваться от QWidget и переопределить событие "closeEvent()". Естественно, что новоявленный класс должен будет иметь указатель на tx;
Понятно. Дело немного усложняется тем, что может быть несколько экземпляров tx. Значит надо будет создавать не просто указатель на tx, а список указателей типа QList, следить за закрытиями этих экземпляров.... Если более простого решения не найдется, придется наследовать mw от диалога, что в общем-то логично...
|
|
|
259
|
Qt / Вопросы новичков / Re: Закрыть виджет
|
: Март 04, 2013, 13:50
|
C++ (Qt) QTextEdit *tx = new QTextEdit(mw);
Но тогда tx будет внутри mw, а мне этого совершенно не хочется. Дело в том, что mw - небольшой "управляющий" виджет, что-то вроде стартера. А tx хочется сделать побольше, там результаты просматриваются. Похожая штука была у меня в случае, когда mw происходил от QDialog. тогда лечит [cpp] QObject::connect (mw, SIGNAL(finished(int)), tx, SLOT(close()));[/cpp]
|
|
|
260
|
Qt / Вопросы новичков / Закрыть виджет
|
: Март 04, 2013, 13:39
|
Хочу, чтобы при закрытии виджета mw закрывался и виджет tx [cpp] QWidget *mw = new QWidget(); ..... QTextEdit *tx = new QTextEdit(); QObject::connect (mw, SIGNAL(destroyed(QObject *)), tx, SLOT(close())); QObject::connect (mw, SIGNAL(destroyed(QObject *)), tx, SLOT(deleteLater())); [/cpp] Но почему-то этого не происходит...
|
|
|
261
|
Qt / Вопросы новичков / Re: Дочерние виджеты вылезают за родительский
|
: Ноябрь 25, 2012, 19:07
|
В том то и дело, что хотелось бы обойтись без MDI. Мне не все нравиться в том, что MDI делает с окнами. Например, если я расширяю на всю область одно окно, то и все остальные расширяются. Т.е. хотелось бы что-то вроде MDI, но немножко по другому.
|
|
|
263
|
Qt / Вопросы новичков / Дочерние виджеты вылезают за родительский
|
: Ноябрь 25, 2012, 17:59
|
Есть главный виджет порожденный QMainWindow Дочерние виджеты должны иметь рамку и заголовок. Но как я их не создавал, какие флаги не ставил, от кого ни порождал, они все равно свободно гуляют по экрану. Если их делать Qt::SubWindow, нет рамки и заголовка и никакими setWindowFlags их сделать не удается. Не подскажете ли выход. Мне почему-то кажется, что он весьма прост, но я совершенно запутался.
|
|
|
266
|
Qt / Общие вопросы / Re: [РЕШЕНО]QFont. Использование шрифта из файла
|
: Март 11, 2012, 15:00
|
QFontDatabase::addApplicationFont ? Простите, а нельзя ли поподробнее? Меня эта проблема давно уже мучает. Эффект будет такой же, как от AddFontResourse? Этот добавляет строчку в таблицу шрифтов, те регистрирует его в системе, вызывать свой фонт я все равно должен по имени, при этом возможен конфликт имен. А не могу ли сказать, что хочу писать фонтом из конкретного файла?
|
|
|
267
|
Qt / Вопросы новичков / Re: undefined reference to `vtable for MClas'
|
: Январь 15, 2012, 13:06
|
C++ (Qt) QPushButton B1("1", &Mc->wgt); QPushButton B2("2", &Mc->wgt); QPushButton B3("2", &Mc->wgt);
Не стоит давать стековым объектам Qt-шного родителя, может привести к печальным последствиям Виноват, исправился. А по сути ошибки, послушай камбалу - вынеси реализацию класса в отдельный файл. То есть у тебя должно быть три файла: main.cpp, MClas.h, MClas.cpp
Послушался, но по-началу толку не было. Посмотрел кой какие статьи, стал крутить все ручки (уже истерика) - и получилось! В числе прочего поставил перед конструктором класса explicit. Может быть не это помогло, а всякие INCLUDEPATH +=, HEDERS +=, но во всяком случае не помешало
|
|
|
269
|
Qt / Вопросы новичков / Re: qDebug
|
: Январь 14, 2012, 14:58
|
"А если мы выйдем из Qt и запустим получившийся экзешник?" Ересь, в Qt нельзя зайти или выйти. Qt - библиотека классов.
Простите великодушно. Я имел в виду Qt Creator
|
|
|
270
|
Qt / Вопросы новичков / undefined reference to `vtable for MClas'
|
: Январь 14, 2012, 14:53
|
Вот решил попробовать себя в самостоятельном творчестве И получил такую ошибку release/main.o:main.cpp:(.text+0xcb): undefined reference to `vtable for MClas' collect2: ld returned 1 exit status
Уж и проект чистил (и из среды "Очистить проект" и просто ручками, удалив все, кроме pro, cpp, h Сдаюсь и прошу помощи main.h #ifndef _Main_h_ #define _Main_h_
#include <QObject>
class MClas : public QObject { Q_OBJECT public: MClas() : QObject() { } QWidget wgt; public slots: void ShowKvadr(); void MClock(); void Pict(); }; #endif
main.cpp #include <QtGui> #include "main.h" //------- MClas *Mc; // -------------------------------- int main(int argc, char** argv) { QApplication app(argc, argv); Mc = new MClas(); QPushButton B1("1", &Mc->wgt); QPushButton B2("2", &Mc->wgt); QPushButton B3("2", &Mc->wgt); QObject::connect(&B1, SIGNAL(clicked()), Mc, SLOT(ShowKvadr())); QObject::connect(&B2, SIGNAL(clicked()), Mc, SLOT(MClock())); QObject::connect(&B3, SIGNAL(clicked()), Mc, SLOT(Pict())); Mc->wgt.resize(800, 600); Mc->wgt.show(); return app.exec(); } /**************/ void MClas::ShowKvadr() { } /******************/ void MClas::MClock() { } /******************/ void MClas::Pict() { } /[code]
[/code]
|
|
|
|
|