Qt 第二课 对话框之间的切换
来源:互联网 发布:陕西像素数据 编辑:程序博客网 时间:2024/06/07 21:06
在做一些登录系统的时候,可能需要在登录界面和主界面之间进行切换,今天学习了这部分内容,顺便复习了前面学习到的信号,槽,模态对话框,非模态对话框。
登录对话框:
#ifndef LOGINDLG_H#define LOGINDLG_H#include<QDialog>#include<QPushButton>class LoginDlg : public QDialog{ Q_OBJECTpublic: LoginDlg(QWidget *parent = 0); ~LoginDlg();private: QPushButton*pOK; QPushButton*pExit;private slots: void OnOkClicked(); void OnExitClicked();};#endif // LOGINDLG_H
#include"logindlg.h"#include<QHBoxLayout>LoginDlg::LoginDlg(QWidget *parent):QDialog(parent){ pOK=new QPushButton("OK",this); pExit=new QPushButton("Exit",this); QHBoxLayout*pMainLayout=new QHBoxLayout(this); pMainLayout->addWidget(pOK); pMainLayout->addWidget(pExit); this->setLayout(pMainLayout); connect(pOK,SIGNAL(clicked()),this,SLOT(OnOkClicked())); connect(pExit,SIGNAL(clicked()),this,SLOT(OnExitClicked())); // resize(400,200); /// setGeometry(800,800,400,200); setWindowTitle("hello world ");}LoginDlg::~LoginDlg(){ static int a=0;//为了调试析构 , 因为在书上看到当以一个窗口为父窗口,new了一个窗口或部件的时候,不需要写delete,在父窗口析构的时候,会释放所 //有子窗口 a++;}void LoginDlg:: OnOkClicked(){ return accept();}void LoginDlg::OnExitClicked(){ return reject();}主窗口:
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include"logindlg.h"class QPushButton;namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{ Q_OBJECTpublic: explicit MainWindow(QWidget *parent = 0); ~MainWindow();private: Ui::MainWindow *ui; QPushButton*pNewWnd; LoginDlg*pNewDlg;private slots: void BtnNewWndClicked();};#endif // MAINWINDOW_H
#include "mainwindow.h"#include "ui_mainwindow.h"#include<QPushButton>MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); pNewWnd=new QPushButton("重新登录",this); //connect(pNewWnd,SIGNAL(clicked()),this,SLOT(OnBtnNewWndClicked())); connect(pNewWnd,SIGNAL(clicked()),this,SLOT(BtnNewWndClicked()));}MainWindow::~MainWindow(){ delete ui;}//这里需要对close()函数进行说明:只有当最后一个窗口调用close时,程序才会退出,其他的情况只是将窗口隐藏起来。void MainWindow::BtnNewWndClicked(){ close(); pNewDlg=new LoginDlg(this); //pNewDlg->setModal(true); if(pNewDlg->exec()==QDialog::Accepted) this->show();}main 函数
#include "mainwindow.h"#include <QApplication>#include"logindlg.h"int main(int argc, char *argv[]){ QApplication a(argc, argv); MainWindow w; LoginDlg dlg; if(dlg.exec()==QDialog::Accepted) { w.show(); return a.exec(); } else return 0;}
0 0
- Qt 第二课 对话框之间的切换
- 非模态对话框之间的切换
- 对话框之间的切换,显示问题
- QT实现多窗口之间的切换
- qt不同窗口之间的切换
- Gtkmm 主窗口与其对话框之间的切换
- VC多对话框界面程序,界面之间的切换问题
- QT creator 如何实现多窗口之间的切换
- QT初学笔记——多窗口之间的切换
- Qt:QML:程序最大化最小化全屏之间的切换
- QT项目开发之VS编译器之间的切换
- QT 多窗口显示 窗口之间的切换
- Qt 第二章 创建对话框--纯代码实现改变形状的对话框(二)
- Qt 第二章 创建对话框--纯代码实现改变形状的对话框(二)
- 对话框与子窗口之间的切换,以及如何卡入到控件里
- QT的对话框
- QT的对话框
- QT的对话框
- mvc3如何导出数据到Excel并保存到任意路径,如何做,求解?
- 数据存储NSData
- asp.net listbox 边框颜色???
- jsp实现网站浏览过滤器(没有登录就不能访问其他网页)
- Java面试题
- Qt 第二课 对话框之间的切换
- 如何获得albumart信息
- tensorflow基本使用方法
- 3Sum-Leetcode
- PHP源码之数组的内部实现
- Java深海拾遗系列(2)---接口、抽象类、实体类继承与实现关系
- KMP算法
- 作业2
- 显示重叠问题