我对QT完全不熟悉,我试图为一个简单的绘图应用程序制作一个简单的GUI 我创建了多个按钮,每个按钮绘制一定的形状,问题是什么时候 我点击一个按钮绘制一个形状,然后点击另一个上一个形状被删除,我希望我的所有图纸存储在同一个窗口,我该如何解决? 任何样本代码表示赞赏我仍然是QT新手
#include "dialog.h"
#include "ui_dialog.h"
#include "dialog.h"
#include<QPixmap>
#include <QLayout>
#include <QLabel>
bool p3=false;
bool p1=false;
QPixmap *pm;
Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);
}
Dialog::~Dialog()
{
delete ui;
}
v;8oid Dialog::paintEvent(QPaintEvent *e){
QPainter painter(this);
if(p3==true){
painter.drawLine(10,10,100,100);
painter.save();
p3=false;
}
if(p1){
painter.drawEllipse(100,100,10,10);
// painter.save();
p1=false;
}
}
void Dialog::on_pushButton_3_clicked()
{
p3=true;
update();
}
void Dialog::on_pushButton_clicked()
{
p1=true;
update();
}
答案 0 :(得分:0)
如果您想看到图纸,则每次都需要绘制它们。
void MainWindow::paintEvent(QPaintEvent *e)
{
QPainter painter(this);
if(p3){
painter.drawLine(10,10,100,100);
}
if(p1){
painter.drawEllipse(100,100,10,10);
}
}
void MainWindow::on_pushButton_2_clicked()
{
p3 = !p3;
update();
}
void MainWindow::on_pushButton_clicked()
{
p1 = !p1;
update();
}