如何去掉QT窗體中的标題欄
dialog->setWindowFlags(Qt::FramelessWindowHint);///去掉标題欄
QT中QSignalMapper的應用
2012-2-16
QSignalMapper可以看做是信号的翻譯和轉換器,他可以吧無參數的信号翻譯成帶int參數,QString參數,QObject參數或者
QWidget*參數信号。
這裡我們把按鈕信号(無參數)轉換成帶QString參數(按鈕的名稱)的信号,然後依靠QString類型的參數進行
處理操作。
例子中
1.
首先建立一個無參數的連接配接:
connect( button, SIGNAL( clicked() ), signalMapper, SLOT( map() ) );
2.
然後我們進行轉換:
signalMapper->setMapping( button, texts[i] );
這裡把信号轉換為QString參數類型的信号,text[i]的内容就是要要傳遞的參數。
3.
最後我們把信号轉發到最終的處理函數handle(信号槽)
connect( signalMapper, SIGNAL( mapped(const QString &) ), this, SLOT(handle(const QString &)) );
handle的參數就是由QSignalMapper轉換過來的QString類型的參數text[i]的值。
//-------------------------------------------------------------------------------------------------------------------
1.建立執行個體
QSignalMapper* signalMapper = new QSignalMapper(this);
2.連接配接原始信号和map()槽
connect(button, SIGNAL(clicked()), signalMapper, SLOT(map()));
3.給mapped()信号捆綁參數
signalMapper->setMapping(button, texts[i]);
4.連接配接mapped()信号給自定義信号
connect(signalMapper, SIGNAL(mapped(const QString &)),
this, SIGNAL(clicked(const QString &)));
原理:但原始信号發送者發送信号給map()槽時,map()會自動發送已經通過
setMapping()設定好的信号。此時,再将mapped()信号綁定在自定義的信号上即可
作用:可以使一個無參數的信号,轉換成帶參數的信号。參數類型可以是integer,
string或者其它的參數
//-------------------------------------------------------------------------------------------------------------------
Qt界面中文字型及大小設定
在Qt中經常會涉及到界面字型大小的設定,預設字型一般比較小,特别是在移植到開發闆上進行顯示一般都要放大字型,因為開發闆上液晶顯示螢幕分辨率都是非常的小,跟電腦顯示有很大差别。
一種整體界面字型設定的方法:
在main函數中添加程式:
QFont font = app .font();
font.setPointSize(16);
app.setFont(font);
在Qt/embedded中顯示中文,可以采用如下運作方式:
./wireless -qws -font unifont
改變Qt中QLineEdit中顯示内容的大小:
QLineEdit *lineEdit = new QLineEdit();
lineEdit->setStyleSheet("font-size : 16px");
也可以在主函數中添加語句:
qApp->setStyleSheet("QLineEdit { font: 16px; });
來自:http://www.jslinux.com/main/20081219532034/Page/20119121485019/NewsDetail.asp?NewsId=20122161647374
//--------------------------------------------------------------------------------------------------------
int換string了:
有兩種方法:
1.使用
QString QString::number ( long n, int base = 10 ) [static]
如:
long a = 63;
QString s = QString::number(a, 10); // s == "63"
QString t = QString::number(a, 16).toUpper(); // t == "3F"
2.使用
long a = 63;
QString s = QString("%1").arg(a);
這個其實網上有很多資料,但是他們并沒有說明白我們怎麼把數組間接的改編成字元串,按照這個方法無論給我什麼資料我都可以以字元串的形式輸出painter->drawtext(橫坐标,縱坐标,字元串變量(如上面的 s,t));