#ifndef MAINWINDOW_H
#define MAINWINDOW_H
 
#include <QMainWindow>
#include <QTableWidget>
#include <QMetaProperty>
 
namespace Ui {
class MainWindow;
}
 
class MainWindow : public QMainWindow
{
    Q_OBJECT
 
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
 
private:
    Ui::MainWindow *ui;
    int line_count;
    QTableWidgetItem * displayLine (QString name, QString value);
    void displayProperty (const QObject * obj, QMetaProperty prop);
    void displayObject (QObject * obj);
};
 
#endif // MAINWINDOW_H
#include "mainwindow.h"
#include "ui_mainwindow.h"
 
#include <QMetaProperty>
 
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi (this);
    displayObject (ui->pushButton);
}
 
MainWindow::~MainWindow()
{
    delete ui;
}
 
QTableWidgetItem * MainWindow::displayLine (QString name, QString value)
{
    int line = line_count;
    line_count ++;
    if (ui->tableWidget->rowCount() < line_count)
        ui->tableWidget->setRowCount (line_count);
 
    QTableWidgetItem * item = new QTableWidgetItem;
    item->setText (name);
    item->setForeground(QColor ("blue"));
    ui->tableWidget->setItem (line, 0, item);
 
    item = new QTableWidgetItem;
    item->setText (value);
    item->setForeground(QColor ("blue"));
    ui->tableWidget->setItem (line, 1, item);
 
    return item;
}
 
void MainWindow::displayProperty (const QObject * obj, QMetaProperty prop)
{
    QString name = prop.name();
    QString value = prop.read (obj).toString();
    displayLine (name, value);
}
 
void MainWindow::displayObject (QObject * obj)
{
    line_count = 0;
    ui->tableWidget->setColumnCount(2);
    ui->tableWidget->setRowCount(10);
 
    QStringList list;
    list << "Name" << "Value";
    ui->tableWidget->setHorizontalHeaderLabels (list);
 
    const QMetaObject * type = obj->metaObject ();
    int cnt = type->propertyCount();
    for (int inx = 0; inx < cnt; inx++)
    {
        // #include <QMetaProperty>
        QMetaProperty prop = type->property (inx);
        displayProperty (obj, prop);
    }
}
 
qtproperties.txt · Last modified: 2018/10/31 10:39 by 147.32.8.115
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki