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);