Qt常见问题01

Qt常见问题01

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即可。

你可能感兴趣的:(Qt常见问题01)