开发者

QML widgets in QWidget

开发者 https://www.devze.com 2023-03-18 06:09 出处:网络
I\'ve a QWidget and I\'ve some Simples Controlls like Button, ProgressBar, TextEdit etc.. done in QML which I am taking from QML Examples. I was reading http://doc.qt.io/archives/qt-4.7/qtbinding.html

I've a QWidget and I've some Simples Controlls like Button, ProgressBar, TextEdit etc.. done in QML which I am taking from QML Examples. I was reading http://doc.qt.io/archives/qt-4.7/qtbinding.html and http://doc.qt.io/archives/qt-4.7/qml-integration.html at the moment I am trying QDeclarativeView.

setAttribute(Qt::WA_TranslucentBackground);
layout = new QVBoxLayout(this);
QDeclarativeView* btnView = new QDeclarativeView;
btnView->setSource(QUrl::fromLocalFile("Button.qml"));
QObject* btnObj = btnView->rootObject();
btnObj->setProperty("width", 140);
btnObj->setProperty("height", 32);
btnObj->setProperty("text", "Close");
//progressBar = new QProgressBar(this);
button = new QPushButton("Click", this);
//layout->addWidget(progressBar);
layou开发者_JAVA技巧t->addWidget(button);
btnView->setGeometry(0, 0, 140, 32);
btnView->setBaseSize(140, 32);
layout->addWidget(btnView);
setLayout(layout);

QML widgets in QWidget

Why my btnView is taking this lot of Space ? and also is it (QDeclarativeView) a Good way of doing ? or there exists an even better solution ?

When using QDeclarativeComponent I get an QObject. But not a QWidget . and is this even a Good solution ? Whats the Best Solution to have lucrative Simple Widgets in Traditional QWidget ?


You didnt tell the layout how to size the widgets. So it will divide the space equally between all its children, in this case since it has only 1 child , the QDeclarativeView takes up the entire space. Use QLayout::setSizePolicy() and QWidget::setMaximumWidth() / QWidget::setMaximumHeight() to resize according to your wishes. You can also use QLayout::addSpacing();

QDeclarativeView is a decent way of adding new UI elements to QWidgets. But it is slower than using QWidgets themselves.

0

精彩评论

暂无评论...
验证码 换一张
取 消