Qt学习笔记(二)
来源:互联网 发布:centos ntfs 挂载 编辑:程序博客网 时间:2024/05/16 11:46
工程建立及功能描述:
首先,建立Qt Gui应用,基类选择QMainWindow。然后右击项目,添加Qt设计器界面类,类名取为mydialog。我们在这里假设一个窗口是登录对话框,另一个窗口是主界面;登录对话框有两个按钮,分别更改显示文本为login,exit;主界面也有两个按钮,分别更改显示文本为relogin,quit.。我们最终的实现功能是:程序运行时,出现登录对话框,点击login按钮进入主界面且登录对话框消失;在主界面点击relogin按钮回到登录对话框且主界面消失,点击exit按钮或quit按钮都会退出程序。
mainwindow.h
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QMessageBox>namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{ Q_OBJECTpublic: explicit MainWindow(QWidget *parent = 0); ~MainWindow();private: Ui::MainWindow *ui;private slots: void receivelogin();//与login中发射的信号关联的槽函数 void on_pushButton_clicked();//与relogin的click()关联的槽函数 void on_pushButton_2_clicked();//与quit的click()关联的槽函数signals: void dlgshow();//显示登录对话框信号 void quit();//退出信号};#endif // MAINWINDOW_H
mydialog.h
#ifndef MYDIALOG_H#define MYDIALOG_H#include <QDialog>#include <QMessageBox>namespace Ui {class MyDialog;}class MyDialog : public QDialog{ Q_OBJECTpublic: explicit MyDialog(QWidget *parent = 0); ~MyDialog();private slots: void on_pushButton_clicked();//与登录关联的槽函数 void receiveshow();//与relogin中发射的信号关联的槽函数 void on_pushButton_2_clicked();//与退出关联的槽函数 signals: void showmainwindow();//显示主窗口信号 void quit();//退出信号private: Ui::MyDialog *ui;};#endif // MYDIALOG_H
main.cpp
#include <QApplication>#include "mainwindow.h"#include"mydialog.h"int main(int argc, char *argv[]){ QApplication a(argc, argv); MainWindow w; MyDialog dlg; dlg.show(); //信号与槽之间进行关联 QObject::connect(&dlg,SIGNAL(showmainwindow()),&w,SLOT(receivelogin())); QObject::connect(&w,SIGNAL(dlgshow()),&dlg,SLOT(receiveshow())); QObject::connect(&w,SIGNAL(quit()),&a,SLOT(quit())); QObject::connect(&dlg,SIGNAL(quit()),&a,SLOT(quit())); return a.exec();}
mainwindow.cpp
#include "mainwindow.h"#include "ui_mainwindow.h"#include<QPushButton>#include<QHBoxLayout>MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this);//默认是类名 setWindowTitle(tr("myMainWindow"));}MainWindow::~MainWindow(){ delete ui;}void MainWindow::receivelogin(){ this->show();//显示主窗口}void MainWindow::on_pushButton_clicked(){ this->hide();//隐藏主窗口 emit dlgshow();//发射显示登录对话框信号}void MainWindow::on_pushButton_2_clicked(){ emit quit();//发射退出信号}
mydialog.cpp
#include "mydialog.h"#include "ui_mydialog.h"#include<QHBoxLayout>#include<mainwindow.h>MyDialog::MyDialog(QWidget *parent) : QDialog(parent), ui(new Ui::MyDialog){ ui->setupUi(this); ui->lineEdit_2->setEchoMode(QLineEdit::Password);}MyDialog::~MyDialog(){ delete ui;}void MyDialog::on_pushButton_clicked(){ if(ui->lineEdit->text()==tr("qt")&&ui->lineEdit_2->text()==tr("123"))//用户名和密码判断 { this->hide();//隐藏登录对话框 emit showmainwindow();//显示主窗口 } else { QMessageBox::warning(this,tr("Warning"),("user name or password wrong!"),QMessageBox::Yes); //警告对话框 ui->lineEdit->clear(); //清除用户名 ui->lineEdit_2->clear(); //清除密码 ui->lineEdit->setFocus(); //鼠标回到用户名栏 }}void MyDialog::receiveshow(){ this->show();//显示登录对话框}void MyDialog::on_pushButton_2_clicked(){ emit quit();//发射退出信号}
mainwindow.ui
mydialog.ui
0 0
- Qt学习笔记(二)
- Qt学习笔记二
- Qt学习笔记之二
- Qt学习笔记(二)
- Qt Quick学习笔记(二)
- 【Qt编程】Qt学习笔记<二>
- QT学习笔记之二 FindDialog
- Qt Model/View 学习笔记 (二)
- Qt Model/View 学习笔记 (二)
- Qt学习笔记(二) 信号和槽
- Qt Model/View 学习笔记 (二)
- qt学习笔记(二) QString
- Qt Model/View 学习笔记(二)
- QT学习笔记(二):QWSServer class
- Qt Model/View 学习笔记 (二)
- qt学习笔记(二) QString
- Qt学习笔记(二)布局管理
- Qt Model/View 学习笔记 (二)
- POJ 1861 - MST - Krustral
- 程序员们该活动活动了 ,北京的同行们给你们推荐点北京好玩的地方
- 关于shell部分语句解释
- spark-1.6.3最新版改动
- Javascript实现归并排序
- Qt学习笔记(二)
- 本地svn安装及使用
- poj 1942 Paths on a Grid(组合数学--组合数)
- 逻辑推理与判断(谜语博士的难题)
- SOLID 原则
- grails的一对一、一对多关系
- 图解SOAPUI解析WSDL文件
- 时间管理:四种事情
- 【codevs1295 N皇后问题(不输出方案)】回溯法