Просмотр сообщений
|
Страниц: 1 ... 30 31 [32]
|
466
|
Qt / Вопросы новичков / Re: Дополнения к приложению. Плагины
|
: Февраль 16, 2012, 18:20
|
поспорили, поспорили в стороннем, а мыслей не у кого не появилось. А жаль. Столкнулся, хотелось бы знать
Тыц. Видео урок, правда на английском, но все разжевано. Кстати, довольно не плохая серия уроков у дядьки вышла
|
|
|
468
|
Qt / Пользовательский интерфейс (GUI) / Re: Какие виджети нужно использовать
|
: Февраль 09, 2012, 00:41
|
Хотел б создать виджет с функциональностю как в Qt Creator -> Projects -> Build Step, Clean Step,... Тойсть нужно сначали видеть короткую информацию, а при нажатие на кнопку Details откроеться более подробное описания с полями и кнопками для ее изменения. С каких компонент должен складаться такой виджет?
Из любых... Просто управляешь видимостью нужного тебе виджета с помощью QWidget::setVisible(bool visible);Примерно так: main.cpp: C++ (Qt) #include <QtGui/QApplication> #include "mainwindow.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow *m = new MainWindow; m->show(); return a.exec(); }
mainwindow.h: C++ (Qt) #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> class QFrame; class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); signals: public slots: void onPushButtonPushed(); private: QFrame *frame2; }; #endif // MAINWINDOW_H
mainwindow.cpp: C++ (Qt) #include "mainwindow.h" #include <QPushButton> #include <QLabel> #include <QLineEdit> #include <QFrame> #include <QComboBox> #include <QVBoxLayout> #include <QDialog> #include <QGroupBox> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { QVBoxLayout *layout = new QVBoxLayout; QWidget *centralWidget = new QWidget; QFrame *frame = new QFrame(); QHBoxLayout *layout2 = new QHBoxLayout(); QPushButton *button = new QPushButton; QVBoxLayout *layout3 = new QVBoxLayout; centralWidget->setLayout(layout); setCentralWidget(centralWidget); frame->setLayout(layout2); button->setText(QObject::tr("Push me!")); layout2->addWidget(new QLabel(QObject::tr("short info: bla-bla-bla..."))); layout2->addSpacerItem(new QSpacerItem(0, 0, QSizePolicy::Expanding)); layout2->addWidget(button); frame2 = new QFrame; frame2->setLayout(layout3); layout3->addWidget(new QLabel(QObject::tr("any widgets"))); layout3->addWidget(new QLineEdit); layout3->addWidget(new QLineEdit); layout->addWidget(frame); layout->addWidget(frame2); layout->addWidget(new QLabel(QObject::tr("always visible"))); layout->addSpacerItem(new QSpacerItem(0,0, QSizePolicy::Minimum, QSizePolicy::Expanding)); connect(button, SIGNAL(clicked()), this, SLOT(onPushButtonPushed())); } void MainWindow::onPushButtonPushed() { frame2->setVisible(!frame2->isVisible()); }
|
|
|
470
|
Qt / Пользовательский интерфейс (GUI) / Вычислить оптимальный размер диалога для определенного лайаута.
|
: Февраль 04, 2012, 10:10
|
Здравствуйте! В продолжение темы eventFilter за пределами окна с флагом Qt::Popup: есть лайаут, укомплектованный другими лейаутами с виджетами, нужно узнать минимальный размер виджета для этого лейаута до вывода его на экран. Пробовал копать в сторону void QWidget::updateGeometry (): C++ (Qt) QVBoxLayout *lay = new QVBoxLayout; QWidget *w = new QWidget(this, Qt::Window); lay->addWidget(new QPushButton("button")); w->resize(0,0); w->setLayout(lay); w->updateGeometry(); qDebug() << w->size();
но, естественно, размер у виджета не поменялся Нужно это для определения геометрии виджета, помеченом на картинке. Пока тупо в выставляю предварительно в ручную подсчитанный размер, что не есть гуд, так как количество рядов кнопок по вертикали может увеличиваться.
|
|
|
471
|
Qt / Пользовательский интерфейс (GUI) / Re: eventFilter за пределами окна с флагом Qt::Popup.
|
: Февраль 01, 2012, 16:24
|
А помоему вы фигней страдаете Вполне возможно Насколько я понимаю, ваш рисунок с Creator'a это обычный modelView, а вовсе не "виджеты нарисованные поверх виджетов".
правое окно, где комбобоксы - как раз окно, созданное с флагом Qt::Popup, выводиться поверх QListView, и при этом кнопочки "run", "debug" и "build" получают события от мыши. - на этой картинке вроде чуть более понятно PS ответ на вопрос темы(пусть и какой то странноватый): Просто выводи ещё 1 виджет, и давай ему родителя того, на ком рисовать будешь.
Примерно так и планирую сделать, если вопрос с Qt::Popup не решиться
|
|
|
472
|
Qt / Пользовательский интерфейс (GUI) / eventFilter за пределами окна с флагом Qt::Popup.
|
: Февраль 01, 2012, 06:35
|
Здравствуйте! Такой вопрос: есть некая форма, с произвольными виджетами, скомпонованными с помощью лейаутов, внизу этой формы блок кнопок: Задача: вверху этих кнопок поверх существующих виджетов, без изменения их геометрии, нарисовать еще один блок кнопок. На вскидку задача решается с помощью вывода еще одного окна в нужную нам область экрана, с установленным флагом Qt::Popup, но одна беда: при выводе этого попапа все остальные виджеты, включая нижний ряд кнопок, что критично, перестают получать события от мыши, такие как QEvent::HoverEnter и QEvent::HoverLeave, до того момента, пока попап не закрыт. В какую сторону копать, что бы разрешить нижним кнопкам реагировать на мышиные события до закрытия окна с попапом? Ведь в QtCreator'е как то это реализовано, при выводе попапа нужные ему кнопки подсвечиваются? Пытался там подсмотреть, но из тех мегабайтов кода нужный кусок не удалось вычленить
|
|
|
474
|
Qt / Пользовательский интерфейс (GUI) / Re: QTableWidget и QSpinDoubleBox
|
: Март 05, 2011, 19:08
|
У меня сигнал свой, который указатель на сам себя возвращает при изменении значения спинбокса, так что все в порядке Улыбающийся
Ааа... Ну раз сейчас такие костыли в порядке вещей.. Тогда наверно нужно зарегистрировать ваш тип MySpinBox*. Почитайте про Q_DECLARE_METATYPE, QMetaType На счет костылей - ну как умеем, раньше только на асме z80 программил, там любые костыли в порядке вещей. А по основному вопросу, т.е. как отловить событие получения фокуса ввода спинбоксом есть что подсказать?
|
|
|
475
|
Qt / Пользовательский интерфейс (GUI) / Re: QTableWidget и QSpinDoubleBox
|
: Март 05, 2011, 18:40
|
Это понятно, спасибо, исправим. Хотя в доках написано, что ... так что в теории должно быть без разницы.
Я вообщето это к тому, что аргументы у valueChanged(int) и у onValueChanged(int) должны быть int, а не MySpinBox* У меня сигнал свой, который указатель на сам себя возвращает при изменении значения спинбокса, так что все в порядке
|
|
|
476
|
Qt / Пользовательский интерфейс (GUI) / Re: QTableWidget и QSpinDoubleBox
|
: Март 05, 2011, 18:15
|
Это не правильно. Так не надо устанавливать. надо как то так: C++ (Qt) connect(dsb, SIGNAL(valueChanged(int)), this, SLOT(onValueChanged(int)));
Это понятно, спасибо, исправим. Хотя в доках написано, что C++ (Qt) bool QObject::connect ( const QObject * sender, const char * signal, const char * method, Qt::ConnectionType type = Qt::AutoConnection ) const
This function overloads connect(). Connects signal from the sender object to this object's method. Equivalent to C++ (Qt) connect(sender, signal, this, method, type)
. так что в теории должно быть без разницы. QSpinDoubleBox - это в смысле QDoubleSpinBox.. или уже что то новое придумали?
Да, мой косяк, читать QSpinDoubleBox как QDoubleSpinBox
|
|
|
477
|
Qt / Пользовательский интерфейс (GUI) / Re: QTableWidget и QSpinDoubleBox
|
: Март 05, 2011, 17:50
|
Устанавливаю так: MySpinBox *dsb = new MySpinBox(MySpinBox::SpinBoxForTime); //MySpinBox наследован от QSpinDoubleBox connect(dsb,SIGNAL(valueChanged(MySpinBox*)),SLOT(onValueChanged(MySpinBox*))); //присоединение сигнала к слоту ui->tableWidget->setCellWidget(0,0,dsb);
в идеале хотелось бы получить такой-же сигнальчик, как во второй строке кода, только по получению спинбоксом фокуса ввода.
|
|
|
478
|
Qt / Пользовательский интерфейс (GUI) / QTableWidget и QSpinDoubleBox
|
: Март 05, 2011, 01:15
|
Здравствуйте! Подскажите куда копать: есть QTableWidget, ячейки которого заполнены QSpinDoubleBox, хотелось бы заполучить возможность посылки сигнала при клике на этот самый QSpinDoubleBox, пробовал через наследование и переопределение слота setFocus() - не вышло. Направте на путь истинный, пожалуйста
|
|
|
Страниц: 1 ... 30 31 [32]
|
|
|