C语言 QT添加红色圆点 点击复制后,将打开C知道体验页 可以使用QPainter和QPen来绘制红色圆点,代码如下:
时间: 2024-05-09 08:21:27 浏览: 64
```c++
#include <QtWidgets>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 创建一个窗口
QWidget window;
window.setWindowTitle("Add Red Dot");
// 在窗口中心添加一个按钮
QPushButton button("Add Red Dot", &window);
button.setGeometry(100, 100, 150, 50);
// 为按钮添加点击事件
QObject::connect(&button, &QPushButton::clicked, [&](){
// 获取窗口的绘图设备
QPainter painter(&window);
// 设置画笔的颜色和宽度
QPen pen(Qt::red, 5);
painter.setPen(pen);
// 绘制一个红色圆点
painter.drawPoint(window.width()/2, window.height()/2);
});
// 显示窗口
window.show();
return app.exec();
}
```
相关问题
Qt 的QPainter::drawImage(怎么绘制图片)
要使用Qt的QPainter绘制图片,可以使用QPainter的drawImage()函数。该函数有多个重载形式,其中最常用的形式如下:
```
void QPainter::drawImage(const QRectF &targetRect, const QImage &image, const QRectF &sourceRect = QRectF(), Qt::ImageConversionFlags flags = Qt::AutoColor)
```
其中,`targetRect`指定了要绘制的目标矩形区域,`image`是要绘制的图片,`sourceRect`指定了要绘制的图片区域,`flags`指定了绘制时的一些选项。
例如,以下代码可以在QWidget部件的paintEvent()函数中绘制一张图片:
```cpp
void MyWidget::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
QImage image(":/path/to/image.png");
QRectF targetRect(20, 20, 100, 100); // 目标矩形区域
QRectF sourceRect(0, 0, image.width(), image.height()); // 图片区域
painter.drawImage(targetRect, image, sourceRect);
}
```
以上代码中,`QImage`表示要绘制的图片,`targetRect`表示要绘制的目标矩形区域,`sourceRect`表示要绘制的图片区域,最后调用`drawImage()`函数绘制图片即可。
自己定义一个图片,通过使用QPainter、QPen、QBrush、QPixmap等方法,绘制一个彩色图片,再添加矩形和椭圆,并在矩形和椭圆之间填充蓝色,椭圆颜色为绿色、宽为4。
好的,我来帮您实现这个需求。以下是代码实现:
```python
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import sys
class MyWidget(QWidget):
def __init__(self):
super().__init__()
# 设置窗口大小为400*400
self.setFixedSize(400, 400)
# 设置窗口标题
self.setWindowTitle('绘制图形')
def paintEvent(self, event):
# 创建QPainter对象
painter = QPainter(self)
# 设置画笔颜色为红色,宽度为2
pen = QPen(Qt.red, 2)
painter.setPen(pen)
# 设置画刷颜色为黄色
brush = QBrush(Qt.yellow)
painter.setBrush(brush)
# 绘制矩形
rect = QRect(50, 50, 200, 100)
painter.drawRect(rect)
# 填充矩形和椭圆之间的区域为蓝色
brush = QBrush(Qt.blue)
painter.setBrush(brush)
painter.fillRect(QRect(60, 60, 180, 60), brush)
# 绘制椭圆,颜色为绿色,宽度为4
pen = QPen(Qt.green, 4)
painter.setPen(pen)
painter.drawEllipse(QPoint(150, 150), 50, 50)
# 创建QPixmap对象,用于显示绘制的图形
pixmap = QPixmap(self.size())
self.render(pixmap)
painter.drawPixmap(0, 0, pixmap)
if __name__ == '__main__':
app = QApplication(sys.argv)
widget = MyWidget()
widget.show()
sys.exit(app.exec_())
```
运行以上代码后,您会看到一个绘制好的彩色图片,并且在矩形和椭圆之间填充了蓝色,椭圆的颜色为绿色,宽度为4。
阅读全文