写个方法,来遍历一个控件显示子控件和它的组成部分:
- void displayObject(const QObject *obj, int spaceCount)
- {
-
- //打印当前 类型与对象名
- qDebug() << QString("%1%2 : %3")
- .arg("", spaceCount)
- .arg(obj->metaObject()->className())
- .arg(obj->objectName());
-
- QObjectList list = obj->children();
-
- //遍历孩子
- foreach (QObject * child, list)
- {
- displayObject(child, spaceCount + 4);
- }
-
- }
接下来测试一下:
- MainWindow::MainWindow(QWidget *parent)
- : QMainWindow(parent)
- , ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
-
-
- displayObject(ui->dateTimeEdit ,0 );
- }
看看打印效果:
- "QSpinBox : spinBox"
- " QLineEdit : qt_spinbox_lineedit"
- " QWidgetLineControl : "
- " QValidator : qt_spinboxvalidator"
这些代码有什么用?
这里面可以打印出来控件的对象名,这样你就可以对他进行QSS设置组成部分控件的样式,就派上用场了!