我实现了一个颜色选择器菜单,基于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
。
有没有人有提示,问题在这里?