Здравствуйте, гость ( Вход | Регистрация )
Litkevich Yuriy | Дата 20.3.2008, 22:58 |
запросто, т.к. родитель - контейнер. | |
0xF | Дата 20.3.2008, 22:00 |
А хз. Не думаю Почитал щас доки, написано, что если кто-то из предков контрола не виден, то setVisible никакого эффекта не имеет... может по этому | |
Litkevich Yuriy | Дата 20.3.2008, 21:29 |
обычно даже и не надо делать setVisible, уже видно должно быть, он случаем задом неперет не работает? | |
0xF | Дата 20.3.2008, 21:26 |
Цитата а кнопку видно? Нет, она не появлялась... т.е. просто пустой виджет без кнопок и групп |
|
0xF | Дата 20.3.2008, 21:25 |
Так, решил проблему переопределением QWidget::showEvent: вставил туда ф-цию QFoldout::Layout | |
Litkevich Yuriy | Дата 20.3.2008, 21:25 |
а кнопку видно? | |
0xF | Дата 20.3.2008, 21:09 |
Думал, может у меня в коде какая-нить ошибка, написал:
WTF?!! Чо за фигня? |
|
0xF | Дата 20.3.2008, 16:57 |
Так, новая запарка возникла Вот код, добавляющий страницу в мой контрол:
И ф-ция Layout для расстановки страниц в нужном порядке:
Прошелся дебагером по коду: сразу же после вставки страницы вызывается ф-ция Layout(см. код), но метод isVisible почему-то возвращает false, хотя я вызвал в коде вставки страницы button->setVisible( true ) и group->setVisible( true ) Почему isVisible возвращает false? О_о |
|
0xF | Дата 18.3.2008, 0:17 |
. | |
Litkevich Yuriy | Дата 17.3.2008, 23:02 |
пример от Макса Шлее: main.cpp: CODE #include <QtGui> #include "CustomWidget.h" // ---------------------------------------------------------------------- int main(int argc, char** argv) { QApplication app(argc, argv); QWidget wgt; CustomWidget* pcw = new CustomWidget; QScrollBar* phsb = new QScrollBar(Qt::Horizontal); phsb->setRange(0, 100); QObject::connect(phsb, SIGNAL(valueChanged(int)), pcw, SLOT(slotSetProgress(int)) ); //Layout setup QVBoxLayout* pvbxLayout = new QVBoxLayout; pvbxLayout->addWidget(pcw); pvbxLayout->addWidget(phsb); wgt.setLayout(pvbxLayout); wgt.show(); return app.exec(); } CustomWidget.h: CODE #ifndef _CustomWidget_h_ #define _CustomWidget_h_ #include <QFrame> // ====================================================================== class CustomWidget : public QFrame { Q_OBJECT protected: int m_nProgress; virtual void paintEvent(QPaintEvent*); public: CustomWidget(QWidget* pwgt = 0); virtual QSize sizeHint() const; signals: void progressChanged(int); public slots: void slotSetProgress(int n); }; #endif //_CustomWidget_h_ CustomWidget.cpp: CODE #include <QtGui> #include "CustomWidget.h" // ---------------------------------------------------------------------- CustomWidget::CustomWidget(QWidget* pwgt/*= 0*/) : QFrame(pwgt) , m_nProgress(0) { setLineWidth(3); setFrameStyle(Box | Sunken); setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed); } // ---------------------------------------------------------------------- /*virtual*/ void CustomWidget::paintEvent(QPaintEvent*) { QPainter painter(this); QLinearGradient gradient(0, 0, width(), height()); float f = m_nProgress / 100.0f; gradient.setColorAt(0, Qt::black); gradient.setColorAt(f, Qt::green); painter.fillRect(rect(), Qt::black); painter.setBrush(gradient); painter.drawRect(0, 0, (int)(width() * f), height()); painter.setPen(QPen(Qt::green)); QString str = QString().setNum(m_nProgress) + "%"; painter.drawText(rect(), Qt::AlignCenter, str); drawFrame(&painter); } // ---------------------------------------------------------------------- void CustomWidget::slotSetProgress(int n) { m_nProgress = n > 100 ? 100 : n < 0 ? 0 : n; repaint(); emit progressChanged(m_nProgress); } // ---------------------------------------------------------------------- /*virtual*/ QSize CustomWidget::sizeHint() const { return QSize(200, 30); } он жестко задал размер |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 19.4.2024, 5:48 |