내 애플 리케이션에서 윈도우의 오른쪽 테두리에 버튼을 정렬하고 싶습니다. 이미 레이아웃을 사용하려고했지만 작동하지 않습니다. 버튼은 왼쪽 테두리 옆에 있습니다. 다음 코드 : 나는 오른쪽 또는하지 않으면Qt 레이아웃이 작동하지 않습니다.
가MainWindow::MainWindow()
{
this->setStyleSheet(
"QMenu {background-color: #555555; color: #EEEEEE; selection-background-color: #222222; border: 1px solid #222222;}"
"QMenuBar {background-color: #555555; color: #EEEEEE;}"
"QMenuBar::Item:selected {background-color: #333333; color:#EEEEEE;}"
"QMenuBar::Item:pressed {background-color: #111111;}"
"QToolBar {background: #555555; border-top: 1px solid #222222;}"
"MainWindow {background: black;}"
"QToolButton { background-color: transparent; border: none; }"
);
initButtons();
}
void MainWindow::initButtons()
{
QPushButton *playButton = new QPushButton(this);
playButton->setAutoFillBackground(true);
playButton->setStyleSheet("background-color: rgb(40, 40, 40);");
playButton->setToolTip("Play");
this->layout()->addWidget(playButton);
this->layout()->setAlignment(playButton, Qt::AlignRight);
}
누군가가 말해 줄래? 왜 작동하지 않는거야?
어떤 레이아웃을 설정하셨습니까? "이 위젯에 설치된 레이아웃 관리자를 반환하거나 레이아웃 관리자가 설치되지 않은 경우 0을 반환합니다." (from http://doc.qt.io/qt-5/qwidget.html#layout) –
레이아웃을 추가하지 않았습니다. 새 레이아웃을 추가하려고하면 "QLayout을 추가하려고합니다." "MainWindow" "에 이미 레이아웃이 있습니다"라는 메시지가 표시되므로 이미 레이아웃이 있다는 것을 신뢰합니다. –
예제 코드는 문제의 컨텍스트를 완벽하게 제공해야 사람들이 자신이하는 일을 추측 할 필요가 없습니다 (예 : 'QMainWindow'가 필수 임). –