Qt笔记1
2019獨角獸企業重金招聘Python工程師標準>>>
1、treewidget 樹形列表
2、使用布局管理器的步驟:1、擺控件(一組一組的擺放,放好一組就全選設定為一個局部布局);2、對幾個要排在一起的控件全選之后右擊選擇布局方式,然后再調一下大小;3、這樣一個一個的局部布局擺好之后,實現控件隨窗口變化的最重要的一步就是單擊主窗口,取消對控件的選擇之后,右擊主窗口,選擇一個頂級的布局方式,這樣就可以實現想要的效果了,但是這樣做的一個不足就是位置和大小又會有點小亂,可能是我沒找到具體調節設置的地方,繼續查找中
? 注意的是一定要在最后,即各個局部布局都設定好后,才設定頂級布局,之前看有些人寫的,有點害人,對初學者誤導很多。
3、shadow build : 創建項目的時候勾選這個選項,就會生成兩個文件夾,也就是debug會單獨放到一個文件夾中,不勾選的話整個項目就一個文件夾,debug和release都在主文件夾內
4、Vertical 垂直布局
? ? Horizontal 水平布局
5、例如我要在一個label上設置當前時間?
QDateTime time = QDateTime::currentDateTime();//獲取系統現在的時間
QString str = time.toString("yyyy-MM-dd hh:mm:ss ddd"); //設置顯示格式
label->setText(str);//在標簽上顯示時間
qt 獲取系統時間顯示出來
#include <qdatetime.h>
#include <qtimer.h>
QTimer *timer= new QTimer(this,"timer");
?connect(timer, SIGNAL(timeout()), this, SLOT(showTime()));
?timer->start(8000);
void ylform::showTime()
{
?QDateTime datatime = QDateTime::currentDateTime();
?
?int y=datatime.date().year();
?int m=datatime.date().month();
?int d=datatime.date().day();
?
?QString strtime = datatime.time().toString();
?time1->setText(strtime+" ? "+QString::number(y)+"/"+QString::number(m)+"/"+QString::number(d));
?data1->setText(QString::number(y)+"/"+QString::number(m)+"/"+QString::number(d));
?
}
ui->label->setText(strTime+" ? "+QString::number(y)+"/"+QString::number(m)+"/"+QString::number(d));
6、Qt中計算一段程序的運行時間:
#include <QTime>
QTime tmpTime;
tmpTime.start();
qDebug() << tmpTime.elapsed() << "ms";
給Qt工程生成的可執行文件添加圖標
1. ?找一個ico文件,該名為適當的。如EXEICON.ico。?
2. ?手動創建一個對應的rc文件。如EXEICON.rc: IDI_ICON1 ICON DISCARDABLE "EXEICON.ico"?
3. ?將上面兩個文件放在當前目錄,把HdssMap.rc加入工程在中。重新生成即可。
給Qt窗體添加圖標
在main函數中:
?QApplication a(argc, argv);
?a.setWindowIcon(QIcon(":/DataManager/Resources/statics.png"));
7、中文輸出亂碼的解決方法:a、在main.cpp頭文件中添加?#include <QTextCodec>
? ?b、在main函數調用中 加入
QApplication a(argc, argv); QTextCodec::setCodecForTr(QTextCodec::codecForName("gbk"));//設置中文字體編碼 以后需要輸出中文的時候 寫成 tr("中文你好");即可? 比如
ui->textEdit->append(tr("pushbutton_3----時間")); 這樣輸出的就是正常的中文字符了
8、checkBox 選中狀態判斷,呵呵,自己想的,不知道大家怎么做
on_checkBox_clicked(){
? ? if(ui->checkBox->checkState())
????{
????? ? // 選中是state狀態為真,未選中為false ?
????}
}
9、可以將很多信號和單個的槽進行連接,也可以將單個的信號和多個的槽進行連接,甚至將一個信號和另一個信號進行連接,這時無論第一個信號什么時候發射,系統都將立刻發射第二個信號。
? 如果存在多個槽與某個信號相關聯,那么,當這個信號被發射時,這些槽將會一個接一個的執行,但是他們執行的順序將會是隨機的、不確定的,我們不能人為的指定那個先執行,那個后執行。
QObject::connect(sender,SIGNAL(signal),receiver,SLOT(slot));
比如:QObject::connect(pushButton,SIGNAL(clicked()),this,SLOT(dopushButton()));
10、類聲明里,SIGNALS沒有public、private、protected等屬性,SLOTS則有這3個屬性
轉載于:https://my.oschina.net/laopiao/blog/83916
總結
- 上一篇: Redis与Java - 实践
- 下一篇: Gerchberg–Saxton算法