QT 上建立一个小窗口

这篇博客介绍了如何在QT环境下创建一个基于Widget的小窗口应用。通过新建QT Gui应用,添加控件并设置布局,然后实现点击按钮启动Windows命令,展示了QT编程的基本步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



刚学会怎么做一个小窗口,输入命令可以在Windows下执行,分享如下:

首先新建一个QT Gui 应用,基类为:widget,如下图:

打开widget.ui,在窗口下放入pushbutton,line,lable,如图:

依次更改名字和对象名称:


### 使用 Qt5 实现单个窗口中切换多个界面 在Qt应用程序中,可以通过多种方式实现在同一个窗口内切换不同的页面或视图。一种常见的方式是使用 `QStackedWidget` 组件,它允许创建一组堆叠的小部件,并通过编程控制显示其中任何一个。 下面是一个简单的例子展示如何在一个窗口里管理不同页面之间的转换: #### 创建多页布局 首先定义各个独立的页面作为单独的小部件类,例如登录页面、主页等。这里给出两个简化版的例子: ```cpp // LoginPage.h #ifndef LOGINPAGE_H #define LOGINPAGE_H #include <QWidget> class QLineEdit; class QPushButton; class LoginPage : public QWidget { Q_OBJECT public: explicit LoginPage(QWidget *parent = nullptr); signals: void loginSuccessful(); private slots: void handleLoginButtonClicked(); private: QLineEdit* usernameEdit_; QLineEdit* passwordEdit_; }; #endif // LOGINPAGE_H LoginPage::LoginPage(QWidget *parent) : QWidget(parent), usernameEdit_(new QLineEdit(this)), passwordEdit_(new QLineEdit(this)) { auto layout = new QVBoxLayout(this); layout->addWidget(new QLabel("Username:", this)); layout->addWidget(usernameEdit_); layout->addWidget(new QLabel("Password:", this)); layout->addWidget(passwordEdit_); QPushButton* button = new QPushButton("Log In", this); connect(button, SIGNAL(clicked()), SLOT(handleLoginButtonClicked())); } void LoginPage::handleLoginButtonClicked(){ emit loginSuccessful(); // 假设验证成功则发出信号通知其他组件 } ``` 对于另一个页面可以类似地设计,比如首页Home Page. 接着设置包含这些页面的主要容器: ```cpp MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent){ stackedWidget_ = new QStackedWidget(this); loginPage_ = new LoginPage(stackedWidget_); homePage_ = new HomePage(stackedWidget_); stackedWidget_->addWidget(loginPage_); stackedWidget_->addWidget(homePage_); setCentralWidget(stackedWidget_); connect(loginPage_, SIGNAL(loginSuccessful()), this,SLOT(showHomePage())); } void MainWindow::showHomePage(){ stackedWidget_->setCurrentIndex(1); // 切换到第二个页面即home page. } ``` 上述代码片段展示了怎样建立一个多页面结构以及响应特定事件(如登录按钮点击)来改变当前可见页面[^1]. 这种模式非常适合于那些需要在同一窗口内部导航的应用场景,而且由于所有的子控件都存在于同一父级之下,因此维护起来相对容易得多。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值