2011-07-06 4 views
0

저는 QWidget을 가지고 있고 Button, ProgressBar, TextEdit 등과 같은 Simples Control을 가지고 있습니다. QML 예제에서 가져온 QML에서 수행되었습니다. QDeclarativeView를 시도하는 순간에 http://doc.qt.io/archives/qt-4.7/qtbinding.htmlhttp://doc.qt.io/archives/qt-4.7/qml-integration.html 을 읽었습니다. QWidget의 QML 위젯

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); 
layout->addWidget(button); 
btnView->setGeometry(0, 0, 140, 32); 
btnView->setBaseSize(140, 32); 
layout->addWidget(btnView); 
setLayout(layout); 

Screenshot

왜 내 btnView는 공간이 많이 걸리는? 또한 그것 (QDeclarativeView) 좋은 방법? 또는 더 나은 해결책이 있습니까?

QDeclarativeComponent를 사용할 때 QObject를 얻습니다. 하지만 QWidget은 아닙니다. 이것이 심지어 좋은 해결책입니까? 전통적인 QWidget에서 수익성있는 간단한 위젯을 얻는 최선의 해결책은 무엇입니까?

답변

0

위젯의 크기를 조정하는 방법을 알지 못했습니다. 따라서 모든 자식 사이에 공백을 균등하게 분할합니다.이 경우 자식이 1 개인 경우에만 QDeclarativeView가 전체 공간을 차지합니다. 원하는대로 크기를 조정하려면 QLayout :: setSizePolicy() 및 QWidget :: setMaximumWidth()/QWidget :: setMaximumHeight()를 사용하십시오. QLayout :: addSpacing();을 사용할 수도있다.

QDeclarativeView는 QWidgets에 새로운 UI 요소를 추가하는 훌륭한 방법입니다. 그러나 QWidgets 자체를 사용하는 것보다 느립니다.