2014-08-13 3 views
0

Я использую Qtdesigner, и я новичок в этом, поэтому мой вопрос: у меня есть Q-кнопка &, которая создается с помощью Qtdesigner. Я хочу добавить к ней изображение, добавив ярлык виджет, который будет в том же фрейме ", то есть, если я нажму кнопку Q, он должен отобразить изображение на этом ярлыке, который будет в одном кадре, поэтому я попытался сделать это в таблице стилей редактирования, добавив этот код для редактирования стилей кадра, как этотОтображение изображения с помощью Pushbutton

QPushButton:pressed{class = Qlabel} 
label_92 {image: url(:/i_Diagram/i_diagram/idiagram3.png);} 

, но это не будет работать так, может кто-нибудь помочь с этим

+1

Почему вы пытаетесь сделать это со стилями? Вы можете подключить сигнал 'clicked'' QPushButton' к слоту, в котором вы устанавливаете изображение для своей метки. Или просто скройте метку и покажите ее, когда нажимается кнопка. – thuga

ответ

0

Если вы хотите добавить изображение в QPushButton в Qt Creator, вы можете установить его в свойствах, после выбора кнопки: -

Set Icon Properties

Обратите внимание на значок здесь, который ранее был добавлен в файл ресурсов Qt, то выбранных здесь в свойствах. Вы также можете добавить текст.

Если вы все еще хотите установить изображение на отдельной метке, вы можете сделать это в коде, предполагая, что ваш диалог был создан с соответствующим классом (Qt Designer Form Class). Предположим, что вы назвали ваш КНОПКА «SetImagePushButton» в своем классе соответствия вы можете добавить слот

void on_SetImagePushButton_clicked(); 

Обратите внимание, как название кнопки совпадает с именем слота, а затем его сигнала. Затем, в реализации, просто установить изображение лейбла: -

void on_SetImagePushButton_clicked() 
{ 
    ui-> label_92->setPixmap(":\i_diagram\idiagram3.png"); // image placed in a Qt resource 
} 

Сделанный правильно, Qt будет обрабатывать подключения кнопки на слот.

+0

Синтаксис для подключения сигналов к слотам по имени: ['void on_ _ (<параметры сигнала>);'] (http://qt-project.org/doc/qt-5/qmetaobject.html#connectSlotsByName) , – thuga

+0

@thuga, К сожалению, это так. Спасибо за замечание; O) – TheDarkKnight

+0

Я бы также рекомендовал использовать 'clicked' signal вместо' release' :) – thuga

Смежные вопросы