No fill option in QColorDialog
-
Hi all
I am using a QColorDialog box . Can I enhance the existing qcolordialog to have no fill option . That means when the user selects the no fill option (as we have in Microsoft ppt) , and if a box is filled then it should be cleared
and can some one suggest me no fill option -
@Qt-Enthusiast
sorry - but at least to me - its absolutely not clear what you mean.
Anyway, you only have the provided API. The only thing is that you can install event filter on the dialogs children. But their classes are all not public, so not much you can do there. -
I have the same feeling. :)
I think it means a no color option.
Instead of clicking on say red, and
get red fill you can select empty area ( a non color) and
get none, meaning if u had a color before, its now cleared. -
@mrjj
and how is it possible to click on no color? -
@raven-worx
In paint programs its often shown as clear box with cross over.
with the other colors. And left click clears pen color and right click clear fill color.
(tried to find image):)
(edit)
In power point its a button
-
When I click on the empty boxes in Custom color . it is changing to white . Am I missing something
-
@mrjj
ok, so meaning transparency?This should be somewhat possible with:
colorDialog->setOption( QColorDialog::ShowAlphaChannel, true );
-
@raven-worx
No, it means set to no color.
Like if for painter, then clear the fill color so it dont fill. ( is my guess :) -
if i have square in QGraphicsView and if I use this no color , the fill color of box should be set to its background just like clearing the box color fill color . Am I clear or shall I send a image for the same
-
@Qt-Enthusiast
Those white colors are custom colors :)
Its not for no color. -
@mrjj
and whats the difference between "no fill" and "transparancy" then?! -
@raven-worx
You are right,
its should give same effect ?But im not sure user will intuitively think, "ahh
if i lower Alpha to zero, it get rid of fill" :) -
Can someone write the code
-
@Qt-Enthusiast
Hi
@raven-worx showed you what to add to your color dialog.
colorDialog->setOption( QColorDialog::ShowAlphaChannel, true );
Then you get Alpha value.
User can set to zero and you get a transparent color which should look the same as no color. -
This is my code
can some one guide me how to do it hereconnect(this, SIGNAL(clicked(const QModelIndex&)), this, SLOT(clickedActivated(const QModelIndex&)));
}void myView::clickedActivated(const QModelIndex& index)
{
if (index.column() == 1 ) {
QColorDialog* colorDialog = new QColorDialog;
colorDialog->setOption(QColorDialog::ShowAlphaChannel, true );
QColor color = QColorDialog::getColor();
d_model->setData(index,color,Qt::DecorationRole);}
as I am getting compiltation error
-
QColorDialog colorDialog; colorDialog.setOption(QColorDialog::ShowAlphaChannel, true ); colorDialog.exec(); QColor color = colorDialog.getColor(); if( color.isValid() ) d_model->setData(index,color,Qt::DecorationRole);
-
I am using qt.4.3.3 I am getting following compliation error
error: ?class QColorDialog? has no member named ?setOption?
colorDialog.setOption(QColorDialog::ShowAlphaChannel, true );
error: ?ShowAlphaChannel? is not a member of ?QColorDialog?
colorDialog.setOption(QColorDialog::ShowAlphaChannel, true );my code is
void myInstView::clickedActivated(const QModelIndex& index)
{
if (index.column() == 1 ) {
QColorDialog colorDialog;
colorDialog.setOption(QColorDialog::ShowAlphaChannel, true );
colorDialog.exec();
QColor color = colorDialog.getColor();
if( color.isValid() )
model->setData(index,color,Qt::DecorationRole);
}}
} -
@Qt-Enthusiast
it seems it is only available since Qt 4.5 -
Can there be any alternative to it
-
@Qt-Enthusiast
Nope.
Fast way is to make new button or menu
that clear the color on the selected item.