Zmień prostokątny przycisk Qt na okrągły
Próbuję stworzyć okrągły przycisk w Qt. Prosta forma za pomocą jednego przyciskuQPushButton
został stworzony w projektancie. Próbuję zamienić to w okrągły przycisksetMask()
. Tak szybko jaksetMask()
zostanie naciśnięty przycisk zniknie. Czy trzeba utworzyć niestandardowy widget, aby utworzyć okrągły przycisk?
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMessageBox>
#include <QtGui/QPushButton>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->pushButton->setText("Test Text");
ui->pushButton->setFixedHeight(200);
ui->pushButton->setFixedWidth(200);
//Set Starting point of region 5 pixels inside , make region width & height
//values same and less than button size so that we obtain a pure-round shape
QRegion* region = new QRegion(*(new QRect(ui->pushButton->x()+5,ui->pushButton->y()+5,190,190)),QRegion::Ellipse);
ui->pushButton->setMask(*region);
ui->pushButton->show();
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
QMessageBox msgbox;
msgbox.setText("Text was set");
msgbox.show();
}
Uwaga: Jeśli przycisk zostanie utworzony w kodzie i zastosowany do okna przed wyświetleniem okna, wyświetlany jest przycisk. Chciałbym korzystać z możliwości WYSIWIG Qt Designer zamiast tworzyć cały formularz w kodzie.