当前位置: 首页 > news >正文

QT入门知识----2024.8.21-9.28

一.MainWindow、Widget、Dialog区别

MainWindow可以放置菜单栏,工具栏,状态栏,托盘等;

Widget主要放布局和控件;

Dialog对话框

Widget是基类,有一个基本的类似画布的功能,window和dialog是继承类,各自增加了一些功能。

二.窗体Widget的大小缩放

函数

widget1->resize(m_width,m_height);

//该函数使得窗体的大小进行了改变,改变后大小为宽度m_width像素,高度m_height像素。

widget1->setgeometry(m_posx,m_posy,m_width,m_height);

//该函数使得窗体的 位置和大小发生改变,更加的随心所欲。

widget的位置是左上角的坐标,而坐标原点是整个屏幕的左上角, 往右往下为正。

hide()将窗体隐藏 ,由setvisable实现

show()显示

 三.槽函数绑定相关-信号与槽

connect(sender,SIGNAL(bool),receiver,SLOT(int));

这使得不同的控件之间交流更加高效, 当qpush_button被按下或者文本框文本变化或是下拉选择框变化时都会触发信号,从而使得接收者控件因为执行槽函数而改变。

注意,signal和slot两个函数的参数都要有数据类型,但不能有实际的变量。

connect(ui>pushButton_2,&QPushButton::clicked,this,&Widget::onSetBlockedSignalStatus);

就如一些qt的书所言:建议在编写Qt5的代码时使用&类名::函数名的connect方式。 

自定义信号与槽函数:

 在类中声明:

signals:

        void mySignal();//无需定义,只要声明就行

private:

        void mySlots();//槽函数需要定义和声明

然后在cpp文件中connect信号与槽函数,在特定的情况下emit信号就行。

常见的信号有:

combobox.ischecked()//复选框是否被选中

qpushbutton.clicked()//点击 

四.UI指针与this指针

在mainWindow.h中: 

private:Ui::MainWindow *ui;

说明ui是UI命名空间中MainWindow的别名指针,它可以访问qt设计师中的各类控件,所以经常有ui->btn等等操作;

而this指针代表当前的MainWindow类,它可以访问这个类中定义的部分控件 

五.格式化输出与读取

setText()可以改变文本内容,字符串需是qstring类型

    ui->textEdit->setText(QString::fromStdString(str));
    ui->textEdit->setText(QString::number(7));
number函数可以将数字转换为QString类型

有时候我们还需要对Double类型的数字进行输出和读取,方法如下:

float a;
QString::number(a,‘f’, 2);  保留两位小数

int a=1;

格式化输出
QString str=QString::number(a).sprintf("%03d",a);
//或者
QString str=QString("%1").arg(a, 3, 10, QChar('0'));

double x=ui->locate_x_lineEdit->text().toDouble();

setStyleSheet可以改变字体或者图片的格式 

 六.焦点改变

focusinEvent()  //当焦点聚焦时

focusoutEvent()  //当焦点离开时

可以据此更改控件的状态

七.寻找控件并删除或隐藏

QStatusBar* pStatusBar = findChild<QStatusBar*>(); //获取状态栏

pStatusBar->setVisible(false);

QList<QPushButton *> parentWidget= parentWidget->findChildren<QPushButton *>();


http://www.mrgr.cn/news/42098.html

相关文章:

  • 如何降低接口的响应时间(RT)
  • 滚雪球学Oracle[5.2讲]:数据库备份与恢复基础
  • Servlet的生命周期及用户提交表单页面的实现(实验报告)
  • 【c++】反证法证明为什么c++不能像JavaScript的typeof那样自动判断数据类型
  • [题解] [SDOI2011] 消防
  • Prometheus之Pushgateway使用
  • 【洛谷】AT_dp_m Candies 的题解
  • 复杂问题分析思维训练
  • c++小游戏
  • 【GESP】C++一级练习BCQM3023,输入-计算-输出-4
  • java版鸿鹄电子招投标系统功能架构设计 核心功能设计 鸿鹄电子招投标采购系统源码
  • 记账软件在线、会计记账网站、财务记账官网、记账云、云记账、在线免费做账以及易舟云财务软件
  • Go语言实现长连接并发框架 - 请求分发器
  • 10.3 刷题
  • 更新-Python OS
  • java版基于Spring Boot + Mybatis在线招投标|评标|竞标|单一采购|询价|邀标|在线开标|招标公告发布|评审专家|招投标采购系统源码
  • Qt 5开发步骤及实例
  • solana监听智能合约事件实践
  • 端侧大模型系列 | 端侧AI Agent任务拆解大师如何助力AI手机?(简短版)
  • cookies和session的区别?