qt技巧

来源:互联网 发布:阿里云物联网平台 编辑:程序博客网 时间:2024/06/05 07:11

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

 

 

原创粉丝点击