精华内容
下载资源
问答
  • Qt widget 增加边框

    千次阅读 2021-01-19 22:01:38
    Qt widget 增加边框   Qt自带很多控件,使用时经常需要给显示的窗口增加边框。实现方法也有很多: 样式表 QPaint直接画 QFrame 1. 样式表增加边框 2. QPaint增加边框 3. QFrame增加边框   QFrame是...

    Qt widget 增加边框

      Qt自带很多控件,使用时经常需要给显示的窗口增加边框。实现方法也有很多:

    • 样式表
    • QPaint直接画
    • QFrame

    1. 样式表增加边框


    2. QPaint增加边框


    3. QFrame增加边框

      QFrame是基本控件的基类,他继承自QWidget主要增加了边框的功能:

    图片来自 doc.qt.ip
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-blG5QT6r-1611064663811)(vx_images/186738228586.png)]

        enum Shape {
            NoFrame  = 0, // no frame
            Box = 0x0001, // rectangular box
            Panel = 0x0002, // rectangular panel
            WinPanel = 0x0003, // rectangular panel (Windows)
            HLine = 0x0004, // horizontal line
            VLine = 0x0005, // vertical line
            StyledPanel = 0x0006 // rectangular panel depending on the GUI style
        };
        Q_ENUM(Shape)
        enum Shadow {
            Plain = 0x0010, // plain line
            Raised = 0x0020, // raised shadow effect
            Sunken = 0x0030 // sunken shadow effect
        };
        Q_ENUM(Shadow)
    
        enum StyleMask {
            Shadow_Mask = 0x00f0, // mask for the shadow
            Shape_Mask = 0x000f // mask for the shape
        };
    
        Shape frameShape() const;
        void setFrameShape(Shape);
        Shadow frameShadow() const;
        void setFrameShadow(Shadow);
    
        int lineWidth() const;
        void setLineWidth(int);
    
        int midLineWidth() const;
        void setMidLineWidth(int);
    

      QFramelineWidth, midLineWidth, shadow, shape属性组合构成的Qt基本控件的外框,上图展示了他们任意组合可以构成各种边框。自己搭配这几个属性不搞样式表或者QPaint也可实现想要的效果。比如:
    Box+Plain+1
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

    展开全文
  • Qt 设置窗口边框

    千次阅读 2019-07-24 10:38:45
    Qt 设置窗口边框 主要说明一个坑,没错,就是一个坑,见下...Ps:所以,看出了吗,最顶层窗口的边框设置是无效的!是无效的!是无效的!重要的事情要说三遍……至于为啥无效,暂时不深究。那么,很多时候我们都要设...

    Qt 设置窗口边框

    主要说明一个坑,没错,就是一个坑,见下图:

    1.新建一个包含QWidget工程,然后通过ui文件设置样式表:“border: 5px solid red”,并且在窗口中拖入一个新的widget,如下图所示:
    在这里插入图片描述

    事实上,运行效果如下:

    在这里插入图片描述

    Ps:所以,看出了吗,最顶层窗口的边框设置是无效的!是无效的!是无效的!重要的事情要说三遍……至于为啥无效,暂时不深究。那么,很多时候我们都要设置窗口的最外层边框的样式,该怎么办呢?很简单,就在顶层窗口中包裹一层次顶层窗口widTop,并且大小设置为顶层窗口的大小(通过布局快速占领大小,并且设置left/top/right/bottom/space属性为0)。然后再设置widTop的边框属性即可。 因为它不是顶层窗口,所以边框属性有效啦。

    如下:
    在这里插入图片描述
    运行效果:
    在这里插入图片描述

    展开全文
  • !... !... 用Graphics View做的,但不知道有什么函数可以改变矩形以及其他椭圆等图形的线框颜色和粗细。 只知道调用QcolorDialog...但改变图形边框颜色和粗细的变量,函数,方法,有没有标准对话框都不太了解。求个解决办法
  • Qt设置窗口边框的圆角

    万次阅读 多人点赞 2016-08-01 11:59:36
    Qt paintEvent setStyleSheet

    Qt技术学习班开始了,更多精彩、好玩的内容等着你,赶紧报名吧! 群号:655815739


    Qt在设置窗口边框圆角时有两种方式,一种是设置样式,另一种是在paintEvent事件中绘制窗口。下面分别叙述用这两种方式来实现窗口边框圆角的效果。

    一、使用setStyleSheet方法

    this->setStyleSheet(“QWidget{background-color:gray;border-top-left-radius:15px;border-top-right-radius:5px;}”));
    使用的主要是使用border-radius 属性,关于这个属性,可选的样式有
    border-top-left-radius 设置左上角圆角;
    border-top-right-radius 设置右上角圆角;
    border-bottom-left-radius 设置左下角圆角;
    border-bottom-right-radius 设置右下角圆角;
    border-radius 设置四个角圆角;

    关于border-radius 后面的参数
    (1)一个参数
    border-radius:15px

    这里写图片描述

    (2)两个参数
    border-radius: 15px 50px
    第一个参数设置X轴方向的半径
    第二个参数设置Y轴方向的半径
    这里写图片描述

    从图中可以看出设置一个参数代表X轴和Y轴设置了同样的值,而两个参数分别为X轴和Y轴方向的半径。大家可以根据不同需要去设置参数。

    二、在paintEvent事件中绘制窗口边框

    这里我们需要重写paintEvent方法,具体代码如下:

    void paintEvent(QPaintEvent *event)
    {
        QPainter painter(this);
        painter.setRenderHint(QPainter::Antialiasing);  // 反锯齿;
        painter.setBrush(QBrush(Qt::red));
        painter.setPen(Qt::transparent);
        QRect rect = this->rect();
        rect.setWidth(rect.width() - 1);
        rect.setHeight(rect.height() - 1);
        painter.drawRoundedRect(rect, 15, 15);
        //也可用QPainterPath 绘制代替 painter.drawRoundedRect(rect, 15, 15);
        {
            QPainterPath painterPath;
            painterPath.addRoundedRect(rect, 15, 15);
            p.drawPath(painterPath);
        }
        QWidget::paintEvent(event);
    }

    效果如下:

    这里写图片描述

    如果不写painter.setRenderHint(QPainter::Antialiasing);则圆角会出现锯齿,如下图。
    这里写图片描述
    仔细对比上图可以看见圆角曲线有锯齿状。

    注意:

    (1)在使用这两种方法的时候需要设置窗口的属性。
        this->setAttribute(Qt::WA_TranslucentBackground);//设置窗口背景透明
        this->setWindowFlags(Qt::FramelessWindowHint);   //设置无边框窗口
    
    (2)主窗体加载不了样式时需要在paintEvent事件中加上如下代码。
    {
        QStyleOption opt;
        opt.init(this);
        QPainter p(this);
        style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
        QWidget::paintEvent(event);
    }
    

    设置按钮的背景边框

    原始图
    这里写图片描述

    设置无边框或者背景透明可以去掉白色方框
    这里写图片描述

    给按钮设置如下样式即可。
    {background-color:transparent;}
    或者
    {border:none;}

    展开全文
  • QT-QWidget颜色设置的三种方法

    千次阅读 2019-09-06 10:12:29
    Qt中窗口背景的设置,下面介绍三种方法。 1.使用QPalette 2.使用Style Sheet 3.绘图事件 一般我不用QSS设置窗口背景,也不建议使用。(这里是对于窗口而,如果是子部件当然可以)。因为窗口使用QSS设置背景之后,若...

    简述
    QWidget是所有用户界面对象的基类,这意味着可以用同样的方法为其它子类控件改变背景颜色。

    Qt中窗口背景的设置,下面介绍三种方法。

    1.使用QPalette
    2.使用Style Sheet
    3.绘图事件
    一般我不用QSS设置窗口背景,也不建议使用。(这里是对于窗口而,如果是子部件当然可以)。因为窗口使用QSS设置背景之后,若子部件不使用同样的方式来设置,默认则会继承父窗口的样式。
    1使用QPalette
    使用QPalette来设置背景色

    m_pWidget = new QWidget(this);
    m_pWidget->setGeometry(0, 0, 300, 100);
    QPalette pal(m_pWidget->palette());
    
    //设置背景黑色
    pal.setColor(QPalette::Background, Qt::black);
    m_pWidget->setAutoFillBackground(true);
    m_pWidget->setPalette(pal);
    m_pWidget->show();
    

    2使用Style Sheet
    使用样式表来设置背景色,可以参考:Qt Style Sheets文档

    3绘图事件
    重写paintEvent,使用QPainter来绘制背景。

    void Widget::paintEvent(QPaintEvent *event)
    {
        Q_UNUSED(event);
    
        QPainter p(this);
        p.setPen(Qt::NoPen);
        p.setBrush(Qt::black);
        p.drawRect(rect());
    }
    

    ————————————————
    版权声明:本文为CSDN博主「一去丶二三里」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/liang19890820/article/details/50357715

    展开全文
  • QWidget设置边框(样式,宽度及颜色)

    万次阅读 多人点赞 2016-08-09 11:23:02
    http://blog.163.com/dingmz_frcmyblog/blog/static/21730402320142182316673/  1)使用QPainter在paintEvent事件处理函数中沿着QWidget窗口边缘画出... 3)使用QFrame代替QWidget,QFrame继承自QWidget,自带边框
  • Qt设置窗口边框的圆角

    千次阅读 2019-06-18 16:42:01
    一 、第一个方法就是重写paintEvent方法,绘画中将其设置为圆角, 具体代码如下: void paintEvent(QPaintEvent *event) { QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); // 反锯齿;...
  • Qt 设置圆角边框

    2020-03-04 20:35:01
    Qt设置圆角边框很方便,这里我们介绍使用qss(setStyleSheet方法)和重写PainteEvent的方式来实现QWidget圆角边框。 一、使用qss实现 setAttribute(Qt::WA_TranslucentBackground); 2.重写PaintEvent,对于我们...
  • Qt设置边框阴影效果

    千次阅读 多人点赞 2019-09-04 10:10:10
    widget.h #ifndef WIDGET_H #define WIDGET_H #include <QWidget> namespace Ui { class Widget; } class Widget : public QWidget { Q_OBJECT public: explicit Widget(QWidget *parent = 0...
  • Qt设置窗口边框的圆形

    千次阅读 2019-07-10 14:39:47
    Qt设置窗口边框圆角时有两种方式,一种是设置样式,另一种是在paintEvent事件中绘制窗口。 下面分别叙述用这两种方式来实现窗口边框圆角的效果。 一、使用setStyleSheet方法 this->setStyleSheet(“QWidget{...
  • 文章主要参考 一去丶二三里 大大的博客...本文就实现了无边框的widget、Dialog、MessageBox等一些常用的控件,进行了一些美化,可以拖动、缩放、双击标题栏最大化还...
  • Qt设置窗口边框圆角时有两种方式,一种是设置样式,另一种是在paintEvent事件中绘制窗口。下面分别叙述用这两种方式来实现窗口边框圆角的效果。 一、使用setStyleSheet方法 this->setStyleSheet(“QWidget{...
  • Qt 隐藏边框和移动窗口,代码能直接使用,新手使用,代码比较老了,仅参考思路。现在下载多了分会自动往上涨,高了就评一下,我去改低些
  • QT5 Widget 无边框标题栏和自定义程序启动画面的小例子,可以直接拿来用
  • setWindowFlags(Qt::FramelessWindowHint);//直接去掉系统提供的窗口边框,不能移动和改变窗口的大小 没有加这段入代码之前: 加入这段代码之后对比: 2、如果隐藏边框后还想要把该界面至于其他界面的顶层,...
  • 一般使用widget作为容器来放置每一个原件,进行一起组合操作 要想下面的widget有外面的框 需要在需要加widget上右键----变型为----QFrame 在QFrame下面的frameShape下面选择Box ...选中之后就有边框...
  • 基于Qt5的去掉标题栏之后添加边框阴影的解决方案。 四种解决方法: 1. 如果是Windows平台,那么可以调用Windows相关API。 2. 使用Qt的QGraphicsDropShadowEffect类来实现。 3. 使用Qt的qDrawBorderPixmap函数来实现...
  • Qt中窗口背景的设置,下面介绍三种方法。 使用QPalette 使用Style Sheet 绘图事件 一般我不用QSS设置窗口背景,也不建议使用。(这里是对于窗口而,如果是子部件当然可以)。因为窗口使用QSS设置背景...
  • 插件类,可使得Qt QWidget去除边框,可自由拉伸 /////.h #ifndef COMRESIZER_H #define COMRESIZER_H #include <QObject> #include <QMouseEvent> #include <QWidget> class COMResizer : public ...
  • 头脑的智慧!前人之思想
  • Qt5设置widget背景图片

    千次阅读 2019-08-13 09:28:46
    #include #include #include QPixmap bgImage("://timg.jpg"); QPalette bgPalette = this->palette();... bgPalette.setBrush(QPalette::Background,bgImage);...该widget控件是属于子控件。
  • Qt Designer中的设置: 效果:
  • 1、现象 在对QWidget使用样式表时无效 QWidget#MyWgt{ border:1px solid gray; } ...原因是QWidget只支持background、background-... style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);//绘制样式 }
  • 设置窗口透明 this->setAttribute(Qt::WA_TranslucentBackground); //设置窗口透明 设置窗口无边框 ...setWindowFlags(Qt::FramelessWindowHint...解决给widget设置颜色无效问题 this->setAutoFillBackgro...
  •   一、以Qt Designer为例,想要在这个Widget窗体内部再添加两个子控件,如下图   添加一个布局后,对布局以外的空白区域右键,选择布局,你需要的布局方式即可,这里以水平布局为例。如下图所示。   效果如下...
  • 怎么为PyQt5里面的widget加上边框

    千次阅读 2021-01-01 11:36:00
     Widget在PyQt5里面默认是没有边框的,如图所示:    假如我们想给它添加一个边框应该怎么做?我在参考资料里找到了答案,我们需要改变样式表。右键组件然后选择改变样式表:    神奇的事情就发生了:    ...
  • border-top-left-radius 设置左上角圆角; border-top-right-radius 设置右上角圆角; border-bottom-left-radius 设置左下角圆角; border-bottom-right-radius 设置右下角圆角; border-radius 设置四个角圆角; ...
  • Qt 通过绘画设置边框阴影

    千次阅读 2017-10-11 16:57:52
    首先widget设置 setWindowFlags(Qt::FramelessWindowHint); setAttribute(Qt::WA_TranslucentBackground, true); 然后重载paintevent void ShadowMethod::paintEvent(QPaintEvent *event) { QPainterPath path;

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,829
精华内容 1,131
关键字:

qtwidget设置边框