хромированная строка состояния в qt

Я не силен в создании графических интерфейсов, и в целом моя философия такова: я их не создаю или делаю максимально простыми (и убеждаю себя, что это лучше для удобства использования :)

Для моего текущего проекта я использую Qt из Python (PyQt), и я хочу начать добавлять некоторые элементы графического интерфейса, не загромождая интерфейс.

Моя идея состоит в том, чтобы создать эти элементы как виджеты с плавающей формой, которые появляются только при необходимости; очень похоже на строку состояния (и строку поиска) в Chrome.

Есть ли какой-нибудь стандартный API, который позволяет создавать такой интерфейс?


person hasen    schedule 02.06.2010    source источник
comment
Взгляните на браузер rekonq (rekonq.sourceforge.net). Он имеет такую ​​же строку состояния, как и Chrome, и написан с использованием Qt.   -  person mtvec    schedule 03.06.2010
comment
Это похоже на просто взлом, который я мог бы сделать в любом случае ... я прошу какой-то надежный API (если он есть !!)   -  person hasen    schedule 04.06.2010


Ответы (1)


Это не очень сложно. Если вам нужно что-то вроде строки состояния в Chrome, вам просто нужно иметь QFrame внизу окна и показывать или скрывать его, когда вам это нужно.

Здесь у вас есть 2 варианта: добавить как часть макета вашего окна, чтобы все элементы перемещались вверх при его отображении. Или вы можете иметь, если он плавающий, поэтому он будет отображаться поверх предметов. Для второго варианта вам нужно создать QFrame с окном в качестве родителя, а затем в окне resizeEvent установить геометрию фрейма.

Это пример второго подхода:

void MyWindow::resizeEvent(событие QResizeEvent*) { frame.setGeometry(0, this->height() - frame.sizeHint().height(), this->width(), frame.sizeHint().height() ); }

Надеюсь, это поможет.

person cnebrera    schedule 11.06.2010
comment
Добро пожаловать :). Если вы хотите сделать это еще круче, вы можете добавить анимацию, чтобы полоса росла, когда она появится. Вы можете использовать QTimeLine для того, что подключено к слоту, из-за которого полоса увеличивается при показе события. (Я думаю, что есть также специальные классы Qt для анимации, но я никогда не пробовал их) - person cnebrera; 12.06.2010
comment
Что, если мы хотели бы поддерживать стандартные подсказки состояния (от кнопок панели инструментов, меню и т. д.) в этой плавающей строке состояния? - person Flavio Tordini; 27.03.2015