博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Qt学习笔记(QAction,QString格式化输出)
阅读量:3579 次
发布时间:2019-05-20

本文共 1826 字,大约阅读时间需要 6 分钟。

在编写界面程序时经常会用到单选项或者复选项,界面按钮方式可以采用QCheckBox、QRadioButton配合QGroupBox实现。如果采用Qt设计师设计界面时,很容易达到这样的效果。而另一种情况是采用菜单项实现,而菜单栏实现单选或者多选一般采用QAction实现。

使用QAction实现单选的方法:将多个QAction添加到QActionGroup,并将QActionGroup设置为exclusive即可,及setExclusive(true);

示例(action已经在设计师界面上定义):

/*动静态切分算法action的互斥选择设置*/
QActionGroup* algrithmAction = new QActionGroup(this);
algrithmAction->addAction(ui->frameDifAlgAction);
algrithmAction->addAction(ui->multiThrhldFramedifAction);
algrithmAction->addAction(ui->vibeAlgAction);
algrithmAction->setExclusive(true);

QString是在编写Qt程序时经常用到的数据结构,同时我们经常需要将各种类型的数据转化成QString然后输出到界面上。这是实现QString的格式化(如printf)就很有必要。

1.QString 转换成其他格式

QString转string:使用QString::toStdString()即可实现。

QString转数字:使用QString::toInt()/toDouble()/toFloat()/等等

QString转字符串:这个需要稍微麻烦一些

Qstring  str;

char*  ch;

QByteArray ba = str.toLatin1();    

ch=ba.data();

注意:
不可以str.toLatin1().data()这样一步完成,可能出错,在需要多个字符串转化时就会出错,如果整个程序只有一次这样的转化可以尝试,安全起见,分步完成。

2.arg的使用

QString::arg ( int a, int fieldWidth = 0, int base = 10, const QChar & fillChar = QLatin1Char( ' ' ) ) const

该方法可以实现一定功能的格式化转换,具体实现如下:

     int i = 10;           // current file's number

     int total = 100;       // number of files to process
     QString fileName = "fileNameTest";    // current file's name
     QString status = QString("Processing file %1 of %2: %3") .arg(i).arg(total).arg(fileName);
该方法是通过占位符的思想实现的,通过arg的参数替换相应位置的变量

3.sprintf

  • QString & QString::sprintf ( const char * cformat, ... )

    这个函数和 C 中的也是差不多的用法,只不过它作为QString的一个成员函数,使用起来就相当方便了,如:

    1: #include 
    2: #include 
    3: #include 
    4: using namespace std;
    5: int main()
    6: {
    7:     QString str2;
    8:     str2.sprintf("Ggicci is %d years old, and majors in %s.", 20, "Software Eng");
    9:     cout << str2.toStdString() << endl;
    10:     return 0;
    11: }

输入结果:

Ggicci is 20 years old, and majors in Software Eng.
Press 
to close this window...

参考文章:

转载地址:http://bzxgj.baihongyu.com/

你可能感兴趣的文章
node爬虫(牛刀小试)
查看>>
关于vue的seo优化
查看>>
字符串在html中的页面中的换行
查看>>
react父子组件间的通信和传值
查看>>
vue-cli3.0设置环境变量
查看>>
vue父组件直接操作子组件的方法(不通过$emit和$on)
查看>>
vue上传文件到UCloud
查看>>
获取input选择文件的本地地址
查看>>
React绑定全局方法或变量
查看>>
js监听div标签上面的自定义属性
查看>>
navcat如何重置窗口
查看>>
代码注入
查看>>
off-by-one
查看>>
ctf-pwn的一些小技巧
查看>>
POJ 1915 Knight Moves
查看>>
Git 撤销修改
查看>>
Git 删除文件
查看>>
Git与远程仓库关联以及关联错误解决方法
查看>>
[HDU] 平方和与立方和
查看>>
[HDU 2096] 小明A+B
查看>>