2014-10-16 2 views
1

(Примечание: я начал изучать Qt вчера, и я сделал свой поиск, прежде чем спрашивать это.)кнопка Qt не отображается в главном окне

После небольшой игры с помощью Qt Designer, я решил сделать более серьезную программу, все программно. В то время как раньше простые задачи казались ... простыми, теперь, прокладывая кнопку, чертовски сложно, потому что она не появляется.

main.cpp

int main(int argc, char * argv[]) 
{ 
    QApplication app(argc, argv); 

    PixelPeep p; 
    p.show(); 

    return app.exec(); 
} 

pixelpeep.h - соответствующая часть

class PixelPeep : public QMainWindow 
{ 
    Q_OBJECT 
public: 
    explicit PixelPeep(QWidget *parent = 0); 

signals: 

public slots: 

private: 
    QToolBar * toolBar; 
    QHBoxLayout * toolbarLayout; 
    QToolButton * addButton; // add new image 

    QScrollBar * zoomBar; 
}; 

pixelpeep.cpp - соответствующая часть

PixelPeep::PixelPeep(QWidget *parent) : 
    QMainWindow(parent) 
{ 
    resize(600,375); 

    toolBar = new QToolBar; 

    addButton = new QToolButton; 
    addButton->setGeometry(20,20,20,20); 

    toolBar->addWidget(addButton); 
    toolbarLayout = new QHBoxLayout; 
    toolbarLayout->addWidget(addButton); 
} 

После всего этого, я получаю пустое окно.

Возможная причина, AFAIK:

кнопка
  • будет выходить из сферы после создания в конструкторе класса - это не тот случай, потому что он выделяется динамически и указатель на AddButton
  • частного члена не является в макете или имеет размер 0 - это не так, поскольку оба они были адресованы в код

Что еще это может быть?

Извините за такой нуб вопрос ...

+3

вы не установили макет панели инструментов –

ответ

0

Вызов addToolBar(toolBar); внутри PixelPeep конструктора.

Вы не установили ни одной иконки на своей кнопке, чтобы она казалась невидимой. Наведите курсор мыши на него, и вы увидите, что там:

enter image description here

+0

Гоша, это было легко. Спасибо. – lemming

Смежные вопросы