Qt走起 - Qt代码示例 - Qt Widgets程序
QT纯代码使按钮执行代码
上一节
上一节不使用右键菜单,也可以使按钮执行代码,这一节,不用右键菜单,也不用设计界面放置按钮,只编辑代码在界面放置按钮,点击按钮会执行代码。

1、打开htmainwindow.h文件,输入代码QPushButton *hovertreePushButton; 注意要引用QPushButton,如下:
#ifndef HTMAINWINDOW_H
#define HTMAINWINDOW_H

#include <QMainWindow>
#include<QPushButton>
//何问起 hovertree.com
QT_BEGIN_NAMESPACE
namespace Ui { class HtMainWindow; }
QT_END_NAMESPACE

class HtMainWindow : public QMainWindow
{
Q_OBJECT

public:
HtMainWindow(QWidget *parent = nullptr);
~HtMainWindow();

private slots:
void on_pushButton_clicked();
void on_pushButtonHt_clicked();

private:
Ui::HtMainWindow *ui;
QPushButton *hovertreePushButton;

};
#endif // HTMAINWINDOW_H
2、转到htmainwindow.cpp文件,在HtMainWindow方法中输入如下代码:
hovertreePushButton=new QPushButton(ui->centralwidget);
hovertreePushButton->setText("改变标题");
hovertreePushButton->move(120,150);
完整代码如下:
#include "htmainwindow.h"
#include "ui_htmainwindow.h"
#include <QMessageBox>

HtMainWindow::HtMainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::HtMainWindow)
{
ui->setupUi(this);

hovertreePushButton=new QPushButton(ui->centralwidget);
hovertreePushButton->setText("改变标题");
hovertreePushButton->move(120,150);

}

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


void HtMainWindow::on_pushButton_clicked()
{
QMessageBox::information(NULL, "Title 何问起", "Content hovertree.com"
, QMessageBox::Yes | QMessageBox::No
, QMessageBox::Yes);
}
void HtMainWindow::on_pushButtonHt_clicked()
{
QMessageBox::information(this,"Hovertree","何问起 手动添加点击按钮代码");

}
3、运行,在界面会显示“改变标题”按钮。但这时点击按钮还没有执行代码。
4、接着在htmainwindows.h定义槽方法:on_hovertreePushButtont_clicked ,上代码:
private slots:
void on_pushButton_clicked();
void on_pushButtonHt_clicked();
void on_hovertreePushButton_clicked();
5、然后在htmainwindow.cpp中实现槽方法,代码如下:
void HtMainWindow::on_hovertreePushButton_clicked(){
setWindowTitle("何问起QT走起 "+QDateTime::currentDateTime().toString("yyyy.MM.dd hh:mm:ss"));
}
注意需要引用#include <QDateTime>
6、运行,这时点击按钮没有改变标题。还需要使用connect方法连接信号和槽。

7、连接“hovertreePushButton”按钮的点击信号和槽方法on_hovertreePushButton_clicked,代码如下:
connect(hovertreePushButton,SIGNAL(clicked()),this,SLOT(on_hovertreePushButton_clicked()));
8、运行,点击按钮,那么窗口的标题会变成"何问起QT走起 "加当前时间 ,如下图:
改变标题
9、htmainwindows.cpp完整代码:
#include "htmainwindow.h"
#include "ui_htmainwindow.h"
#include <QMessageBox>
#include <QDateTime>
// 何问起 hovertree.com
HtMainWindow::HtMainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::HtMainWindow)
{
ui->setupUi(this);

hovertreePushButton=new QPushButton(ui->centralwidget);
hovertreePushButton->setText("改变标题");
hovertreePushButton->move(120,150);

connect(hovertreePushButton,SIGNAL(clicked()),this,SLOT(on_hovertreePushButton_clicked()));
}

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

void HtMainWindow::on_pushButton_clicked()
{
QMessageBox::information(NULL, "Title 何问起", "Content hovertree.com"
, QMessageBox::Yes | QMessageBox::No
, QMessageBox::Yes);
}

void HtMainWindow::on_pushButtonHt_clicked()
{
QMessageBox::information(this,"Hovertree","何问起 手动添加点击按钮代码");

}

void HtMainWindow::on_hovertreePushButton_clicked(){
setWindowTitle("何问起QT走起 "+QDateTime::currentDateTime().toString("hh:mm:ss"));
}


收藏 列表

评论: