QDialog 无边框 圆角
时间: 2023-08-18 09:04:55 浏览: 90
您可以通过在QDialog的样式表中使用border-radius属性设置无边框窗口的圆角。同时您需要将窗口的边框样式设置为none,以使窗口没有边框。例如,以下样式表将QDialog设置为无边框窗口,并将其边角设置为10像素:
```
QDialog {
background-color: white;
border-radius: 10px;
border: none;
}
```
通过这样的设置,您将得到一个具有圆角边角的无边框QDialog窗口。您可以根据需要调整像素大小,以及更改窗口的背景颜色。
相关问题
qdialog无边框拖拽代码如何实现
可以使用以下代码实现qdialog无边框拖拽:
```
class CustomDialog : public QDialog
{
public:
CustomDialog(QWidget *parent = 0) : QDialog(parent)
{
setWindowFlags(Qt::FramelessWindowHint);
setAttribute(Qt::WA_TranslucentBackground);
}
protected:
void mousePressEvent(QMouseEvent *event)
{
if (event->button() == Qt::LeftButton) {
m_dragging = true;
m_dragPosition = event->globalPos() - frameGeometry().topLeft();
event->accept();
}
}
void mouseMoveEvent(QMouseEvent *event)
{
if (m_dragging && (event->buttons() & Qt::LeftButton)) {
move(event->globalPos() - m_dragPosition);
event->accept();
}
}
void mouseReleaseEvent(QMouseEvent *event)
{
if (event->button() == Qt::LeftButton) {
m_dragging = false;
event->accept();
}
}
private:
bool m_dragging;
QPoint m_dragPosition;
};
```
这个代码可以让QDialog无边框,并且可以通过鼠标拖拽移动窗口。
Qdialog无边框且可以拖拽代码如何实现
可以使用以下代码实现:
```
class CustomDialog : public QDialog
{
public:
CustomDialog(QWidget *parent = nullptr) : QDialog(parent)
{
setWindowFlags(Qt::FramelessWindowHint | Qt::WindowSystemMenuHint);
}
protected:
void mousePressEvent(QMouseEvent *event) override
{
if (event->button() == Qt::LeftButton)
{
m_dragging = true;
m_dragPosition = event->globalPos() - frameGeometry().topLeft();
event->accept();
}
}
void mouseMoveEvent(QMouseEvent *event) override
{
if (m_dragging && (event->buttons() & Qt::LeftButton))
{
move(event->globalPos() - m_dragPosition);
event->accept();
}
}
void mouseReleaseEvent(QMouseEvent *event) override
{
if (event->button() == Qt::LeftButton)
{
m_dragging = false;
event->accept();
}
}
private:
bool m_dragging = false;
QPoint m_dragPosition;
};
```
这个类继承自 QDialog,重写了鼠标事件的处理函数,实现了无边框且可以拖拽的功能。