1 问题:加上Q_OBJECT后出现undefined reference to错误。
解决:重新编译。
其他:信号槽的生效需要Q_OBJECT的支撑。
2 问题:如何弹出对话框。
解决:继承QDialog,然后通过对象的exec来弹出。
分析:QWidget的模式与非模式区别:非模式窗口就是运行在应用程序中,对于任何其他窗口都是独立窗口,用show()调用。模式窗口就是当它被调用而弹出的时候,它会阻塞这个应用程序,直到这个窗口被关闭,发生的其他任何处理或者交互才能继续运行,用exec()调用。
3 问题:std::string与QString转换。
解决:QString qstring = "Test String";
string stlstring = qstring.latin1()
QString qsecond = stlstring.c_str();
QString qstr = QString::fromStdString(str);
4 QLabel根据字符的长度决定是否显示省略号"..."。
QFont font(ui->label->font());
QFontMetrics fm(font);
ui->label->setText(fm.elidedText(aaa, Qt::ElideRight, ui->label->width());
5 QGridLayout与控件的高度问题
用QGridLayout来调整布局,在设置了QGridLayout的layoutRowMinimumHeight为25后,其中部分控件的高度仍然没有25。
QLabel:25,QDateEdit:20,QLineEdit:20,QComboBox:20
解决方法:
将QDateEdit,QLineEdit,QComboBox的属性sizePolicy的垂直策略修改为Expanding即可。