QT界面开发杂记(二)

为了解决渲染之后有锯齿的问题使用drawText绘制文本

但是遇到新的问题做成通用控件后不适应长度过长换行

有问题找度娘ヽ( ̄▽ ̄)ノ改为调用下面的函数,且将flags设置为Qt::TextWordWrap即可


//控件不接受焦点即用户鼠标和键盘不能对控件进行任何操作

setFocusPolicy(Qt::NoFocus);

Qt::TabFocus             //可以通过通过Tab键接受焦点
Qt::ClickFocus           //可以通过单击接受焦点
Qt::StrongFocus          //TabFocus | ClickFocus | 0x8
Qt::WheelFocus           //可以通过使用鼠标滚轮接受焦点
Qt::NoFocus              //不接受焦点。

返回相对显示器的全局坐标(获取光标全局坐标位置)

QCursor().pos()或者用QMouseEvent::globalPos() 

QPoint QCursor::pos() [static] 

调用mapTo程序崩溃mapTo(m_page,QCursor().pos()):
mapTo的使用说明是将小部件坐标pos转换为父组件的坐标系统,父组件不能为nullptr,而且必须是调用小部件的父组件。
正确方法是用mapFromGlobal将全局坐标转化成子窗口的坐标

m_page->mapFromGlobal(QCursor().pos())
mapTo是已知当前控件的坐标,求相对于父控件的位置
mapFrom是已知父控件的坐标,求相对于当前的位置

渐变色qss
垂直渐变
qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:1 #FF0000, stop:0 #00FF00)
水平渐变
qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:1 #FF0000, stop:0 #00FF00)
x1,y1是起点位置
x2,y2是起点位置

设置进入widget改变手型

setCursor(QCursor(Qt::PointingHandCursor));

widget的重绘函数
void QWidget::paintEvent(QPaintEvent *event)
This event handler can be reimplemented in a subclass to receive paint events passed in event.
A paint event is a request to repaint all or part of a widget. It can happen for one of the following reasons:

repaint() or update() was invoked,
the widget was obscured and has now been uncovered, or
many other reasons.

此事件处理程序可以在子类中重新实现

调用了repaint()或update()可以对小部件的全部或部分重新绘制

当这个小部件遮挡或者被发现许多其他原因也会被重绘

void MyButton::paintEvent(QPaintEvent *event)
{
        //---------------------------------------------
        QWidget::paintEvent(event);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值