字体对话框的实现
#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);
}Widget::~Widget()
{delete ui;
}void Widget::on_fontbtn_clicked()
{bool ok;QFont ret = QFontDialog::getFont(&ok,QFont("宋体",4,4),this);if(ok){//ui->textEdit->setFont(ret);ui->textEdit->setCurrentFont(ret);}else{QMessageBox::information(this,"提示","未选中字体");}
}
widget.h
#ifndef SECOND_H
#define SECOND_H#include <QWidget>namespace Ui {
class Second;
}class Second : public QWidget
{Q_OBJECTpublic:explicit Second(QWidget *parent = nullptr);~Second();public slots:void jump_slot();
private:Ui::Second *ui;
};#endif // SECOND_H
second.h
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QtDebug>
#include <QMessageBox>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();
signals:void my_jump();
private slots:void on_pushButton_clicked();void on_pushButton_2_clicked();private:Ui::Widget *ui;
};
#endif // WIDGET_H
main.cpp
#include "widget.h"
#include "second.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;Second s;QObject::connect( &w, &Widget::my_jump, &s, &Second::jump_slot);w.show();return a.exec();
}
widget.cpp
#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//去掉头部this->setWindowFlag(Qt::FramelessWindowHint);//去掉空白部分this->setAttribute(Qt::WA_TranslucentBackground);
}Widget::~Widget()
{delete ui;
}void Widget::on_pushButton_clicked()
{if(ui->lineEdit->text() == "admin" && ui->lineEdit_2->text() =="123456" ){//弹出警告对话框,基于属性版本QMessageBox msg(QMessageBox::Information,"提示","登陆成功",QMessageBox::Ok,this);int ret = msg.exec();if(ret == QMessageBox::Ok){this->close();emit my_jump();}}else{QMessageBox msg(QMessageBox::Warning,"警告","账号与密码不匹配,是否重新登录",QMessageBox::Yes | QMessageBox::No,this);int ret = msg.exec();if(ret == QMessageBox::Yes){ui->lineEdit_2->clear();}else{this->close();}}
}void Widget::on_pushButton_2_clicked()
{//弹出一个信息对话框 基于静态成员函数int ret = QMessageBox::question(this,"tips","您是否确定要退出登录",QMessageBox::Yes | QMessageBox::No);if(ret == QMessageBox::Yes){this->close();}
}
second.cpp
#include "second.h"
#include "ui_second.h"Second::Second(QWidget *parent) :QWidget(parent),ui(new Ui::Second)
{ui->setupUi(this);
}Second::~Second()
{delete ui;
}
void Second::jump_slot()
{this->show(); //显示
}