ui中的类,这样使用无法通过调试:
Ui::Dialog ui(&w);
w.show();
而需要改成:
Ui::Dialog ui; ui.setupUi(&w); w.show();
Dialog包含ui类为私有成员,在Dialog的构造函数中添加了一些操作,在main函数使用下面的代码,调试时构造函数中的操作并没有执行,难道还需要一些启动命令??
Dialog ui(&w);
w.show();
使用at()比[]下标要快,因为它不会引起深拷贝。
QT的字符串格式化输出: tr("文本块 % 1,文本块 % 2,长度:% 3").arg().arg().arg() str="% 1 %2" qDebug<< str.arg("% 1f","hello"); //结果为 % 1f hello qDebug<< str.arg("% 1f").arg("hello");//结果为hellof %2
在字符串中可以使用的标记在1~99之间,从最小数字开始对应,比如QString("%5,%2,%7").arg("a").arg("b"),那么“a”会代替%2,b会代替%5,而%7会直接显示
arg()的一种重载形式为arg(const QString &a1,const QString &a2);
另一种重载形式可以指定宽度和填充字符:
QString::arg (const QString &a, int fieldWidth = 0, const QChar & fillChar = QLatin1Char( ' ' ) ) const
还有包含进制参数的重载形式请参考收藏Qt 字符串QString arg()用法总结。
第19章:进程和线程
在使用QFileDialog::getOpenFileName时误写成了以下形式,导致不能选择任何图片(在选择框中没有任何预览):
QString filename=QFileDialog::getOpenFileName(0,QString(),tr("Images(* .png * .jpg)"));
改成如下形式后,就可以正常选择了:
QString filename=QFileDialog::getOpenFileName(0,QString(),QString(),tr("Images(* .png * .jpg)"));
从帮助文件中查看getOpenFileName:
QString QFileDialog::getOpenFileName(QWidget * parent = 0, const QString & caption = QString(), const QString & dir = QString(), const QString & filter = QString(), QString * selectedFilter = 0, Options options = 0)
QT支持字符串常量的下标访问:
buffer[i%BufferSize]="ABCD"[(int)qrand()%4];