关于qt的一些小东东

本文介绍了Qt编程中的一些实用技巧,包括显示系统时间和时间间隔、textBrowser组件的使用、信号连接、尺寸策略、程序发布、快捷键设置、QButtonGroup操作、网页加载、音频播放、tab隐藏、QRadioButton分组以及QTextCursor应用等,涵盖了Qt开发的多个方面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、qt 显示系统时间&时间间隔

添加头文件

#include <qdatetime.h>

//显示时间和添加格式

QDateTime dt =QDateTime::currentDateTime();

QString str = dt.toString("yyyy-MM-ddhh:mm:ss ddd");

表示为,年月日,时间和星期。

时间间隔获取办法

QDateTime inalertingTime = QDateTime::fromString(ui->alertingTimeLabel->text(), "yyyy-MM-dd hh:mm:ss");

QDateTime dealertingTime = QDateTime::fromString(ui->answerTimeLabel->text(), "yyyy-MM-dd hh:mm:ss");

int alertingSumSecs = inalertingTime.secsTo(dealertingTime);

单位是秒

2、textBrowser组件

显示颜色

ui.textBrowser->setStyleSheet("color:rgb(255,0,0)");

 

    textBrowser组件 添加内容

QString st;

ui.textBrowser->append(st);

 

3.信号可以连接信号

connect(lineEdit, SIGNAL(textChanged(const QString&)),

              this,SIGNAL(updateRecord(const QString &)));

这是说,当第一个信号发出时,第二个信号被发出。除此之外,这种信号-信号的形式和信号-槽的形式没有什么区别。

 

4.sizepolicy部件大小说明

4.1. Fixed: 大小不能改变

4.2. Minimum: 已经是最小, 不能再被缩小, 但能放大.

4.3. Maximum: 已经是最大, 不能再被放大, 但能缩小.

4.4. Preferred:  控件的sizeHint()是他的sizeHint, 能被缩小, 放大.

4.5. Expanding: 控件可以自行增大或者缩小.

 

5.qt的发布

qt的项目如果运行正常会生产exe,找到项目的生成目录。
进入这个文件夹,在进入它的子文件夹 release 里面,找到release版的exe,
将这个exe 复制到一个新的单独的文件夹里用于发布,比如存到 
D:\study\ 文件夹里面。

然后从开始菜单打开 cmd 命令行,输入命令:
cd /d D:\study
然后使用 windeployqt 工具命令:
windeployqt test.exe

文件夹里的qm文件是多国语言翻译文件,不需要可以删了,其他的都保留。

 

6.快捷键的使用

QAction* action = new QAction(this);

//快捷键是ctrl+tab

action->setShortcut(QKeySequence(Qt::CTRL+ Qt::Key_Tab));

//添加到当前widget

this->addAction(action);

//快捷键触发的事件:slotChangeTab

connect(action, SIGNAL(triggered()), this,SLOT(slotChangeTab()));

 

7.QButtonGroup全不选中问题
setExclusive设置group的互斥性,当为true的时候表示group里面的button有且仅有一个被选中。
_buttonGroup->setExclusive(false);
((QCheckBox *)_buttonGroup->checkedButton())->setChecked(false);
_buttonGroup->setExclusive(true);

8.qt5.7.0实现网页的方法
//IE内核
QAxWidget* webWidget = new QAxWidget;
//设置ActiveX控件为IEMicrosoft Web Browser
//设置ActiveX控件的id,最有效的方式就是使用UUID
//此处的{8856F961-340A-11D0-A96B-00C04FD705A2}就是Microsoft WebBrowser控件的UUID
webWidget->setControl(QString::fromUtf8("{8856F961-340A-11D0-A96B-00C04FD705A2}"));
webWidget->setObjectName(QString::fromUtf8("webWidget"));//设置控件的名称
webWidget->setFocusPolicy(Qt::StrongFocus);//设置控件接收键盘焦点的方式:鼠标单击、Tab键
webWidget->setProperty("DisplayAlerts", false); //不显示任何警告信息。
webWidget->setProperty("DisplayScrollBars", true); // 显示滚动条
webWidget->dynamicCall("Navigate(const QString&)",strUrl);//strUrl标示网页


//谷歌内核
QWebEngineView *view = new QWebEngineView(this);
view->setUrl(QUrl(strUrl));

 

9.音频播放

//绝对位置,wav文件确保无损

QString path ="E:/sound/msg.wav";
QSoundEffect* effect = new QSoundEffect(this);
effect->setSource(QUrl::fromLocalFile(path));
//循环播放次数 
effect->setLoopCount(/*QSoundEffect::Infinite*/1);
//设置音量,0-1  
effect->setVolume(1.0f);
effect->play();

 

10.tabwidget里tab隐藏问题

_ui.tabwidget->removeTabe(0);

当某些tab需要暂时隐藏时,可以如此使用。

 

11.QRadioButton分组规则

    拥有相同父窗体的QRadioButton具有相互排他性。如果想要在一个窗体里面表达多组QRadioButton就要对他们进行分组,推荐QGroupBox和QButtonGroup,其中第二个不会在画面上进行体现。可根据需求选择。

 

12.调出linux的定时任务

crontab -e

13.QTextCursor的anchor

 

MoveAnchor表示普通的移动光标,不选中任何内容。
KeepAnchor表示移动光标的同时选中之间的内容(就像按住Shift键后移动光标一样)

14.QScrollArea样式配置(转自https://www.cnblogs.com/falqs/p/3805003.html

scrollArea->setStyleSheet("QScrollArea {background-color:transparent;}") //设置控件透明

scrollArea->viewport()->setStyleSheet("background-color:transparent;");//设置控件的子空间透明

效果为,area控件透明,且不影响子控件

 

在qt desigener 设置属性framShape为NoFrame可以配置控件为无边框

 

//隐藏横向和纵向滚动条

scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值