Qt按钮不会点击
QtPushButton wont click
你好,我正在学习Qt教程,我已经复制了本教程通信部分的代码。代码编译并显示,但我的按钮都不可点击。
主窗口.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
class QPushButton;
class QLabel;
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void OnPlus();
void OnMinus();
private:
Ui::MainWindow *ui;
QLabel *label;
};
#endif // MAINWINDOW_H
主窗口.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtGui>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
QPushButton *plus = new QPushButton("+", this);
plus->setGeometry(50, 40, 75, 30);
QPushButton *minus = new QPushButton("-", this);
minus->setGeometry(50, 100, 75, 30);
label = new QLabel("0", this);
label->setGeometry(190, 80, 20, 30);
connect(plus, SIGNAL(clicked()), this, SLOT(OnPlus()));
connect(minus, SIGNAL(clicked()), this, SLOT(OnMinus()));
ui->setupUi(this);
}
void MainWindow::OnPlus()
{
int val = label->text().toInt();
val++;
label->setText(QString::number(val));
}
void MainWindow::OnMinus()
{
int val = label->text().toInt();
val--;
label->setText(QString::number(val));
}
MainWindow::~MainWindow()
{
delete ui;
}
main.cpp
#include <QtGui/QApplication>
#include "mainwindow.h"
#include <QPushButton>
#include <QLabel>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MainWindow window;
window.show();
return app.exec();
}
您的问题是这行:
ui->setupUi(this);
它为您的主窗口创建了一个不可见的中央小部件,它可以阻止所有指向按钮的事件,这就是为什么当您单击按钮时它们不会被按下的原因。将这一行移到MainWindow
构造函数的开头,问题就会消失。
相关文章:
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- Qt自定义QPush按钮未显示在布局上
- Qt中来自不同功能的按钮引用
- 按钮悬停在 QT 中垂直布局的选项卡小部件中不起作用
- 如何通过拖动鼠标QT检查按钮?鼠标移动事件
- 更改 QT 中按钮的颜色
- 以编程方式在任何按钮上突出显示 Qt 鼠标悬停按钮
- QT-如何通过按下按钮从子窗口小部件返回到父窗口小部件
- 使每个按钮的QT设计器窗体不同
- QT - 连接 Qml 按钮 单击到 Cpp 构造函数
- 如何将QLabel放入切换按钮Qt c ++中
- 单击"推送"按钮应使用Qt C++在不同的窗口中显示绘图
- Qt按钮按下增量
- Qt创建一个左箭头样式的按钮
- 无法增加 QToolButton 的大小(按钮样式设置为 Qt::ToolButtonTextBesideIcon)
- Qt - 右键单击时编辑按钮文本
- 将类功能连接到按钮.(QT C )
- 当单击旁边的按钮[qt]时,如何动态创建标签
- 等待,直到按下按钮(QT)
- 没有这样的插槽按钮QT