如何去掉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));