用QT信号和槽实现主界面有两个按钮,一个按钮打开新界面,另一个关闭新界面

很简单的 代码通俗易懂,没有分文件,方便贴去就直接编译,如果有不对的地方,请不吝赐教!!!

#include <QApplication>
#include <QWidget>
#include <QPushButton>
#include <QHBoxLayout>

int main(int argc, char** argv)
{
    QApplication app(argc, argv);
    QWidget widget;//创建空白窗口
	QWidget widget1;
    QPushButton button1("show", &widget);
    QPushButton button2("hide", &widget);
    QHBoxLayout Hlayout(&widget);
    Hlayout.addWidget(&button1);
    Hlayout.addWidget(&button2);
	QObject::connect(&button1, SIGNAL(clicked()), &widget1, SLOT(show()));
	QObject::connect(&button2, SIGNAL(clicked()), &widget1, SLOT(hide()));
	widget.show();

    return app.exec();
}


Qt中,可以使用QStackedWidget控件来实现在同一个窗口中显示不同的界面。QStackedWidget是一个可以堆叠多个窗口部件的容器,只有当前窗口部件是可见的。 具体实现步骤如下: 1. 在Qt Designer中创建不同的界面,并将它们保存为.ui文件。 2. 创建一个窗口,并在窗口中添加一个QStackedWidget控件。 3. 在窗口的构造函数中,将每个.ui文件中的窗口部件加载到QStackedWidget控件中。 4. 在窗口中添加按钮,并为每个按钮设置一个函数,用于切换到对应的界面。 5. 在函数中,使用setCurrentIndex()函数将QStackedWidget控件中当前显示的窗口部件切换到对应的界面。 示例代码如下: ``` // MainWindow.cpp #include "MainWindow.h" #include "ui_MainWindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); // 加载不同的界面 page1 = new Page1(); page2 = new Page2(); // 将界面添加到QStackedWidget控件中 ui->stackedWidget->addWidget(page1); ui->stackedWidget->addWidget(page2); // 连接按钮函数 connect(ui->btnPage1, SIGNAL(clicked()), this, SLOT(showPage1())); connect(ui->btnPage2, SIGNAL(clicked()), this, SLOT(showPage2())); } MainWindow::~MainWindow() { delete ui; } void MainWindow::showPage1() { // 切换到第一个界面 ui->stackedWidget->setCurrentWidget(page1); } void MainWindow::showPage2() { // 切换到第二个界面 ui->stackedWidget->setCurrentWidget(page2); } ``` 其中,MainWindow是窗口的类名,Page1和Page2是两个不同界面的类名。在Qt Designer中创建的界面需要使用uic工具进行转换,转换后的类名格式为ui_XXX.h。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值