我是qt编程的新手,所以如果你发现它是一个noob问题请不要介意.我在主窗口中添加了一个按钮,但是当我运行代码时,按钮不会显示.这是我的代码:
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; }
我该怎么办?
在主窗口中,您应该使用中央小部件.你有两个选择:
设置中央小部件的按钮(不太好选择):
QPushButton *train_button = new QPushButton(this); train_button->setText(tr("something")); setCentralWidget(train_button);
添加一个小部件并将该按钮添加到该小部件并为centralWidget设置小部件:
QWidget * wdg = new QWidget(this); QPushButton *train_button = new QPushButton(wdg); train_button->setText(tr("something")); setCentralWidget(wdg);
当然,您可以使用布局为您的centralWidget:
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);