Как создать кнопку закрытия в строке меню?

На картинке ниже красный прямоугольник — это строка меню. Я хочу создать кнопку закрытия, где находится зеленый прямоугольник, но я не знаю, как это сделать. Какие-либо предложения? Я хотел бы, чтобы пользовательский интерфейс выглядел как Adobe Photoshop CS6?

скриншот


person delio    schedule 03.03.2014    source источник
comment
MenuBar — это простой виджет. Итак... 1) Создайте виджет с MenuBar и вашей кнопкой внутри. 2) Вставьте кнопку справа от MenuBar (события изменения размера, связанные с обработкой)   -  person Dmitry Sazonov    schedule 03.03.2014
comment
Я очень новичок. Как я могу создать виджет с MenuBar и моей кнопкой внутри? и что такое + процесс, связанный с изменением размера событий. Спасибо.   -  person delio    schedule 03.03.2014
comment
Можете ли вы дать мне пример кода. Пожалуйста, я очень в беде. Спасибо   -  person delio    schedule 03.03.2014


Ответы (2)


Виджет QMenuBar имеет метод setCornerWidget. Вы можете делать то, что хотите, вот так:

    // Hiden Window Title
    setWindowFlags(Qt::FramelessWindowHint);

    // Set widget on the top left corner
    QPushButton* menuTopRightButton = new QPushButton("TL", m_menubar);
    m_menubar->setCornerWidget(menuTopRightButton, Qt::TopLeftCorner);

    // Set widget on the top right corner
    QPushButton* menuTopLeftButton = new QPushButton("TR", m_menubar);
    m_menubar->setCornerWidget(menuTopRightButton, Qt::TopRightCorner);
person LIANG LIU    schedule 15.06.2017

#closeButton {
position: absolute;
height:20px;
width:100px;
background:red;
float:right;
position:absolute;
right:0px;
top:0px;
}

http://jsfiddle.net/6U5p8/

person douwe12345    schedule 03.03.2014
comment
Спасибо, но как я могу вставить ‹div id=close›X‹/div› в свой пользовательский интерфейс - person delio; 03.03.2014
comment
Вы говорите о программе Qt на С++? - person delio; 03.03.2014
comment
О, мой плохой: извините, я думал, что это HTML/CSS. :$ - person douwe12345; 03.03.2014
comment
@ douwe12345, хотя это может ответить на вопрос, обычно лучше дать краткое описание вместе с любым опубликованным кодом. Это поможет будущим посетителям лучше понять, почему ваш ответ правильный, и может даже дать вам несколько голосов :) - person ; 04.03.2014
comment
@ douwe12345: если этот ответ не имеет никакого отношения к делу, я предлагаю вам полностью удалить его. - person Jeroen Vannevel; 04.03.2014