我實現了一個顏色選擇器菜單,基於BlackDal ColorPicker我的PopUp中這個QT信號有什麼問題?
爲了發送信號,當選擇一種顏色,我說:
class RColorPicker : public QPushButton
{
Q_OBJECT
signals:
void selected(QColor color);
...
和
void RColorPicker::on_popup_selected(QColor color)
{
_selectedColor = color;
repaint();
emit selected(color);
Sowewhere其他我連接到像
fillColorButton = new RColorPicker()
connect(fillColorButton , SIGNAL(selected(QColor)), this, SLOT(fillColorButtonTriggered(QColor)));
從PopUpMenu中選擇一種顏色,但如果在PopUp中選擇「More ...」,然後從被調用的QColorDialog
中選擇一種顏色,則不會調用連接的插槽fillColorButtonTriggered
, Instaed,在我的MDI-應用程序中,一個不同的文檔變成活動窗口。雖然它應該:
void RColorPickerPopup::mousePressEvent (QMouseEvent *event)
{
...
QColorDialog *dialog = new QColorDialog(this);
if(dialog->exec())
{
hoverColor = dialog->selectedColor();
delete dialog;
emit selected(hoverColor);
this->close();
的問題不會發生,如果我通過一個本地的Windows ChooseColor
對話框更換QColorDialog
。
有沒有人有提示,問題在這裏?