2013-08-01 57 views
8

qt programlamada yeniyim, bu yüzden bir noob sorusu bulursanız lütfen aldırmayın. Ana pencereme bir düğme ekledim ancak kodu çalıştırdığımda düğme görüntülenmiyor.Qt'deki ana pencereye düğmeler nasıl eklenir?

mainwindow.cpp

#include "mainwindow.h" 
#include "ui_mainwindow.h" 
#include <QtWidgets> 

MainWindow::MainWindow(QWidget *parent) 
{ 
QPushButton *train_button = new QPushButton(this); 
train_button->setText(tr("something")); 
train_button->move(600, 600); 
train_button->show(); 
} 

mainwindow.h

#ifndef MAINWINDOW_H 
#define MAINWINDOW_H 

#include <QMainWindow> 

namespace Ui { 
class MainWindow; 
} 

class MainWindow : public QMainWindow 
{ 
Q_OBJECT 

public: 
explicit MainWindow(QWidget *parent = 0); 
~MainWindow(); 

private: 
Ui::MainWindow *ui; 
}; 

#endif // MAINWINDOW_H 


MainWindow::~MainWindow() 
{ 
delete ui; 
} 

ne yapmalıyım: İşte benim kod?

+0

Başlamak için temel sınıf olarak QWidget ile uygulama oluşturmak daha iyi (benim bakış açımdan). QMainWindow bir çok ekstra işlevsellik sağlar ve bunu yalnızca bazı deneyimleriniz olduğunda öğrenebilirsiniz. Qt. –

cevap

17

Ana pencerede merkezi pencere aracını kullanmalısınız. İki seçeneğin var:

Set merkez parçacık (Pek iyi değil seçim) için düğmesi:

QPushButton *train_button = new QPushButton(this); 
train_button->setText(tr("something")); 
setCentralWidget(train_button); 

Bir widget ekleyin ve bu Widget'a düğme eklemek ve centralWidget için widget'ı ayarlayın:

QWidget * wdg = new QWidget(this); 
QPushButton *train_button = new QPushButton(wdg); 
train_button->setText(tr("something")); 
setCentralWidget(wdg); 

Ve elbette size centralWidget için Düzenleri kullanabilirsiniz:

QWidget * wdg = new QWidget(this); 
QVBoxLayout *vlay = new QVBoxLayout(wdg); 
QPushButton *btn1 = new QPushButton("btn1"); 
vlay->addWidget(btn1); 
QPushButton *btn2 = new QPushButton("btn2"); 
vlay->addWidget(btn2); 
QPushButton *btn3 = new QPushButton("btn3"); 
vlay->addWidget(btn3); 
wdg->setLayout(vlay); 
setCentralWidget(wdg); 
+0

Daha fazla düğme eklemek istersem ne olur? Her bir düğme için aynı widget'ı mı kullanmalıyım yoksa yeni bir widget mı oluşturmalıyım? – Learner

+0

@ user2595561 ~> Hayır! Sadece bir tane merkezi widget var! Layouts'u kullanmalısınız. Cevabımı çok yakında güncelleyeceğim. – saeed

+0

Çok teşekkürler. Sihir gibi çalışıyor :) – Learner

İlgili konular