QT学习笔记4

news2024/11/16 23:50:44

一.UI的使用

ui代码输入:

 ui->setupUi(this);
 ui->statusbar->showMessage("作者",3000);

在ui类中调用

二.对话框QDialong

 

 模态对话框:就是会阻塞同一应用程序中其它窗口的输入

非模态对话框:不会堵塞同一应用程序中其它窗口的输入

1)自定义对话框

(1)QDialog::exec()实现应用程序级别的模态对话框

    QDialog qdialog;
    qdialog.setWindowTitle(tr("对话框"));
    qdialog.exec();

(2)QDialog::open()实现窗口级别的模态对话框

    QDialog qdialog;
    qdialog.setWindowTitle(tr("对话框"));
    qdialog.open();

(3)QDialog::show()实现非模态对话框

    QDialog *qdialog=new  QDialog ;
    qdialog->setWindowTitle(tr("对话框"));
    qdialog->show();

要在堆上建立,栈上建立会一闪而过。此方法有内存泄漏,由于对话框的特性,我们可以设置对话框关闭,自动销毁对话框。

    QDialog *qdialog=new  QDialog;
    qdialog->setAttribute(Qt::WA_DeleteOnClose);
    qdialog->setWindowTitle(tr("对话框"));
    qdialog->show();

2)标准对话框

 (1)文件对话框:

 QString fileName = QFileDialog::getOpenFileName(this, tr("打开文件"),"./",tr("Images (*.png *.xpm *.jpg)","Text(*.txt)"));

点击按钮打开,添加文件对话框;

四个参数,分别是父亲,标题,路径和类型

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QStatusBar>
#include <QDialog>
#include <QFileDialog>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    ui->statusbar->showMessage("作者",3000);
    QToolBar *qtboolbar=new QToolBar(this);
        //穿件工具栏
    this->addToolBar(qtboolbar);

    QAction *tool1=new QAction("运行");
    QAction *tool2=new QAction("调试");
    QAction *tool3=new QAction("编译");
    qtboolbar->addAction(tool1);
    qtboolbar->addAction(tool2);
    qtboolbar->addAction(tool3);

//    QDialog *qdialog=new  QDialog;
//    qdialog->setAttribute(Qt::WA_DeleteOnClose);
//    qdialog->setWindowTitle(tr("对话框"));
//    qdialog->show();





}

MainWindow::~MainWindow()
{
    delete ui;
}


void MainWindow::on_pushButton_clicked()
{

    QString fileName = QFileDialog::getOpenFileName(this, tr("打开文件"),"./",tr("Images (*.png *.xpm *.jpg)","Text(*.txt)"));
    if(!fileName.isEmpty()){
        ui->plainTextEdit->appendPlainText(fileName);
    }

}

void MainWindow::on_pushButton_2_clicked()
{
    QStringList files = QFileDialog::getOpenFileNames(
                             this,
                             "打开文件",
                             "./",
                             "Images (*.png *.xpm *.jpg)");
    for(int i=0;i<files.count();i++){
         ui->plainTextEdit->appendPlainText(files[i]);
    }

}

(2)颜色对话框QColorDialog:

QColorDialog::getColor() 

//生成颜色对话框

第一个参数是现有颜色,第二个this指针,第三个对话框名字,返回值是选择的颜色

void MainWindow::on_pushButton_3_clicked()
{
    QPalette pal=ui->plainTextEdit->palette();
    //获取现有调色板数据
    QColor iniColort=pal.color(QPalette::Text);
    //现有的文字颜色
    QColor color1=QColorDialog::getColor(iniColort,this,"选择颜色");
    //选择颜色
    if(color1.isValid()){
        //判断是和否存在
        pal.setColor(QPalette::Text,color1);
        //将调色板子的文字数据改变为返回的颜色
        ui->plainTextEdit->setPalette(pal);
        //设置调色板
    }
}

点击按钮,生成颜色对话框,然后选择颜色,如果有效,设置文字颜色;

(3)字体对话框QFontDialog:

 QFontDialo::getFont:生成选择字体对话框

void MainWindow::on_pushButton_4_clicked()
{
     bool ok;
     QFont inift=ui->plainTextEdit->font();
     //获得原有文本框字体
     QFont font = QFontDialog::getFont(&ok,inift,this);
     //返回一个字体类
     if (ok) {
         ui->plainTextEdit->setFont(font);
         //把该字体设置为返回的字体
     } else {

     }

}

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QStatusBar>
#include <QDialog>
#include <QFileDialog>
#include <QColorDialog>
#include <QFontDialog>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    ui->statusbar->showMessage("作者",3000);
    QToolBar *qtboolbar=new QToolBar(this);
        //穿件工具栏
    this->addToolBar(qtboolbar);

    QAction *tool1=new QAction("运行");
    QAction *tool2=new QAction("调试");
    QAction *tool3=new QAction("编译");
    qtboolbar->addAction(tool1);
    qtboolbar->addAction(tool2);
    qtboolbar->addAction(tool3);

//    QDialog *qdialog=new  QDialog;
//    qdialog->setAttribute(Qt::WA_DeleteOnClose);
//    qdialog->setWindowTitle(tr("对话框"));
//    qdialog->show();





}

MainWindow::~MainWindow()
{
    delete ui;
}


void MainWindow::on_pushButton_clicked()
{

    QString fileName = QFileDialog::getOpenFileName(this, tr("打开文件"),"./",tr("Images (*.png *.xpm *.jpg)","Text(*.txt)"));
    if(!fileName.isEmpty()){
        ui->plainTextEdit->appendPlainText(fileName);
    }

}

void MainWindow::on_pushButton_2_clicked()
{
    QStringList files = QFileDialog::getOpenFileNames(
                             this,
                             "打开文件",
                             "./",
                             "Images (*.png *.xpm *.jpg)");
    for(int i=0;i<files.count();i++){
         ui->plainTextEdit->appendPlainText(files[i]);
    }

}

void MainWindow::on_pushButton_3_clicked()
{
    QPalette pal=ui->plainTextEdit->palette();
    //获取现有调色板数据
    QColor iniColort=pal.color(QPalette::Text);
    //现有的文字颜色
    QColor color1=QColorDialog::getColor(iniColort,this,"选择颜色");
    //选择颜色
    if(color1.isValid()){
        //判断是和否存在
        pal.setColor(QPalette::Text,color1);
        //将调色板子的文字数据改变为返回的颜色
        ui->plainTextEdit->setPalette(pal);
        //设置调色板
    }
}

void MainWindow::on_pushButton_4_clicked()
{
     bool ok;
     QFont inift=ui->plainTextEdit->font();
     //获得原有文本框字体
     QFont font = QFontDialog::getFont(&ok,inift,this);
     //返回一个字体类
     if (ok) {
         ui->plainTextEdit->setFont(font);
     } else {

     }

}

运行页面:

 添加文件对话框:

 选择颜色对话框:

 选择字体对话框:

 改变完后对话框:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/438632.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python反序列化漏洞及魔术方法详细全解(链构造、自动审计工具bandit)

目录 一、Python序列化反序列化相关函数 二、Python魔术方法 三、魔术方法实例详解 <__reduce__> <__setstate__> <__getstate__> 四、反序列化安全漏洞的产生 五、真题实例 六、CTF-CISCN华北-JWT&反序列化 七、代码审计自动化工具——bandit …

理解unsafe-assume-no-moving-gc包

1. 背景 在之前的《Go与神经网络&#xff1a;张量计算》[1]一文中&#xff0c;不知道大家是否发现了&#xff0c;所有例子代码执行时&#xff0c;前面都加了一个环境变量ASSUME_NO_MOVING_GC_UNSAFE_RISK_IT_WITH&#xff0c;就像下面这样&#xff1a; $ASSUME_NO_MOVING_GC_UN…

单片机--第六章中断系统例子学习

单片机--第六章中断系统例子学习 例6-2 P0口连上8个LED&#xff0c; 13引脚&#xff08;INT0&#xff09;上接了一个按钮&#xff0c;要求每次按钮均能改变LED的亮灭 代码&#xff1a; #include<reg51.h> #define LED P0sbit KEYP3^3; bit flag0;//延时函数 void dela…

Linux学习笔记——网络基础

文章目录 计算机网络发展过程独立模式网络互联局域网LAN广域网WAN 计算机网络协议的概念网络协议协议分层OSI七层模型TCP/IP五层(或四层)模型网络传输基本流程数据包封装和分用各层间通信IP地址MAC地址端口 计算机网络发展过程 独立模式 计算机之间相互独立; 网络互联 多台计…

Docker笔记3 | 在Ubuntu下安装Docker

3 | 在Ubuntu下安装Docker 1 支持环境2 卸载旧的docker3 安装Docker3.1 添加HTTPS 传输的软件包以及 CA 证书3.2 添加软件源的 GPG 密钥3.3 添加 Docker 软件源3.4 安装Docker3.5 自动安装 4 Docker启动和验证是否安装ok4.1 启动Docker4.2 docker 用户组建立4.3 验证docker 1 支…

Shell在日常工作中的应用实践

作者&#xff1a;京东物流 李光新 1 Shell可以帮我们做什么 作为一名测试开发工程师&#xff0c;在与linux服务器交互过程中&#xff0c;大都遇到过以下这些问题&#xff1a; •一次申请多台服务器&#xff0c;多台服务器需要安装相同软件&#xff0c;配置相同的环境&#x…

Redis复制详解

Redis复制&#xff08;replica&#xff09; 前言 redis复制是什么&#xff1f; 就是主从复制&#xff0c;master以写为主&#xff0c;slave以读为主&#xff0c;当master数据发生变化时&#xff0c;自动将新的数据异步同步到其他slave数据库。 redis复制能做什么&#xff1f…

算法篇——字符串大集合(js版)

344.反转字符串 编写一个函数&#xff0c;其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间&#xff0c;你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 链接&#xff1a;https://leetcode.cn/problems/r…

SWCF QA集锦待查收 (车联网与V2X、自动驾驶、5G毫米波、射频测试、频谱监测与规划等)

感谢大家的观看与支持&#xff01;我们为大家整理了本次发布会中的演讲资料&#xff0c;汇总了直播过程中的热点问题并请讲师进行了详细解答&#xff0c;在此整理分享给大家&#xff01; 演讲Q&A Q&#xff1a;目前5G天线支持最大的MIMO是多少&#xff1f; A&#xff1a;…

为什么会是植物神经紊乱 如何辨别

很多人都认为&#xff0c;疾病一定能通过仪器检查出来&#xff0c;很多时候去医院检查的时候&#xff0c;大多都需要进行各种的仪器检查&#xff0c;但是当仪器都检查不出来的时候&#xff0c;大家就认为没有生病。其实&#xff0c;当出现浑身不适的时候&#xff0c;检查检查不…

LeNet网络简介

1. 背景 主要介绍LeNet网络预测在CIFAR-10图像数据集上的训练及预测。 2. CIFAR-10图像数据集简介 CIFAR-10是一个包含了6W张32*32像素的三通道彩色图像数据集&#xff0c;图像划分为10大类&#xff0c;每个类别包含了6K张图像。其中训练集5W张&#xff0c;测试集1W张。 数…

window环境rabbitMq安装

RabbitMQ是一个开源的遵循 AMQP协议实现的基于 Erlang语言编写&#xff0c;即需要先安装部署Erlang环境再安装RabbitMQ环境*需加注意的是&#xff0c;可根据两者版本号的对应表&#xff0c;安装相应版本的Erlang和RabbitMQ。 一、安装准备工具 版本查看地址&#xff1a;Rabbi…

mysql的启动关闭原理和实战、及常见的错误排查

前言 MySQL是一个关系型数据库管理系统&#xff0c;由瑞典MySQL AB 公司开发&#xff0c;属于 Oracle 旗下产品。MySQL是最流行的关系型数据库管理系统之一&#xff0c;在 WEB 应用方面&#xff0c;MySQL是最好的 RDBMS (Relational Database Management System&#xff0c;关系…

日本政府官宣:投资42亿日元,量子计算要上“云”

引《日经新闻》报道&#xff0c;日本政府宣布将投资4.2亿日元&#xff08;约合2.18亿人民币&#xff09;来支持量子计算领域的发展。这笔资金将被用于扩大云计算平台上的共享量子计算能力&#xff0c;为企业提供更加高效的量子计算服务。该计划将由东京大学领导&#xff0c;支持…

【LeetCode: 1187. 使数组严格递增 | 暴力递归=>记忆化搜索=>动态规划 】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

STL——list、stack与queue

&#x1f4d6;作者介绍&#xff1a;22级树莓人&#xff08;计算机专业&#xff09;&#xff0c;热爱编程&#xff1c;目前在c&#xff0b;&#xff0b;阶段>——目标Windows&#xff0c;MySQL&#xff0c;Qt&#xff0c;数据结构与算法&#xff0c;Linux&#xff0c;多线程&…

Springboot 整合 Mybatis

创建SpringBoot项目 首先在IDEA中创建一个SpringBoot项目&#xff0c;注意Java Version 然后Packaging为Jar包形式&#xff0c;Type改为Maven形式。 在上图的下一步中可以选择相关依赖&#xff0c;也可以在项目里面的pom文件中自己添加相关依赖&#xff0c;然后进行import也可…

在外包搞了7年,废了.....

我以自身的经验告诫大家&#xff0c;不要去外包&#xff0c;原因&#xff1a; 无法深入理解项目&#xff1a;由于外包公司通常只负责项目的某一个部分或某一个阶段&#xff0c;软件测试人员无法对整个项目进行深入了解&#xff0c;可能会影响到测试的全面性和准确性。 对测试要…

RB-PEG-NHS;NHS-PEG-Rhodamine罗丹明聚乙二醇琥珀酰亚胺 红色荧光染料罗丹明B功能化聚乙二醇

RB-PEG-NHS,罗丹明-聚乙二醇-活性脂 中文名称&#xff1a;罗丹明-聚乙二醇-活性脂 英文名称&#xff1a;RB-PEG-NHS 性状&#xff1a;固体或者粘稠液体&#xff0c;取决于分子量大小。 溶剂&#xff1a;溶于大部分有机溶剂&#xff0c;溶于水。 分子量&#xff1a;400、60…

【深度学习】RNN、LSTM、GRU

【深度学习】RNN、LSTM、GRU RNNLSTMGRU结语 RNN 和普通神经网络一样&#xff0c;RNN有输入层、输出层和隐含层&#xff0c;不一样的是RNN在不同的时间 t t t会有不同的状态&#xff0c;其中 t − 1 t-1 t−1时刻隐含层的输出会作用到 t t t时刻的隐含层。 RNN因为加入了时间…