2

ウィジェットに円を描きたいのですが、円内に背景画面が表示されている必要があります。つまり、円の境界線/円周だけがウィジェットに表示されている必要があります。ウィジェットの残りの部分は透明にする必要があります。私は試しました:1)setStyleSheet("background:transparent;") 2)setAttribute( Qt::WA_TranslucentBackground, true ); 3)Overriding paintEvent(QPaintEvent* event);

上記の方法はすべて機能しませんでした。setAutoFillBackground() は false です。私はQtを初めて使用し、Googleで見つけたばかりのソリューションを使用しています。助けてください。

4

2 に答える 2

0

これは仕事をします:D

#include <QApplication>
#include <QtGui/QMainWindow>
#include <QtGui/QPushButton>
#include <QtGui/QHBoxLayout>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QMainWindow *win=new QMainWindow(0);
    win->setAttribute(Qt::WA_TranslucentBackground,true);
    win->show();
    return a.exec();
}
于 2012-08-24T15:10:13.493 に答える
0

ウィンドウで使用される場合、QWidget::setMask関数はその影響を及ぼします。整形時計の例も参照してください (ドキュメントからも参照されsetMaskます)。

于 2012-08-24T17:20:15.577 に答える