• 5497阅读
  • 3回复

我要做一把直尺,用不规则窗体的方法,但存在很多问题,哪位可以指导一下 [复制链接]

上一主题 下一主题
离线duduqq
 

只看楼主 倒序阅读 楼主  发表于: 2008-04-18
— 本帖被 XChinux 执行加亮操作(2008-04-21) —
我要做一把直尺,用不规则窗体的方法,但存在很多问题,
代码如下:
        void Ruler::paintEvent(QPaintEvent *)
{
    QPixmap pix(800,100);
    QPainter painter(&pix);
    painter.setPen(Qt::red) ;
    painter.drawLine(0,0,400,200);
    //去锯齿
    painter.setRenderHint(QPainter::Antialiasing);
    painter.setViewport((width() - m_side) / 2, (height() - m_side) / 2,m_side, m_side);
        painter.setWindow(-m_side/2, -m_side/2, m_side, m_side);
       
    //中心点在坐标(width() / 2, height()/2)上。
    painter.translate(m_portx, m_porty);
    //中心坐标点改变了,portx,porty也要改变。
    m_portx = m_portx - m_portx  ;
    m_porty = m_porty - m_porty ;
    painter.drawPixmap(200,200,pix) ;
    setMask(pix);
}
画出来的东西都是一点一点象素的,点击界面有时点到了是背后的窗口,而且窗口很闪,CPU利用率也很高,我要画的线条(直尺上的刻度)也不能显示出来,哪位大位知道这是什么情况啊,谁做过其关的
项目。
离线duduqq

只看该作者 1楼 发表于: 2008-04-21
没人做过吗
离线sealbird
只看该作者 2楼 发表于: 2008-06-19
顶一下,也一直关注QT的不规则窗体编程技术
离线linshihaoma

只看该作者 3楼 发表于: 2008-06-19
我只是了解了大概,貌似QT的界面绘制提供的接口不是直接绘制,而是通过QStyle和QStyleSheet,我大概实现了绘制圆形按钮,坛子里有。没有再深究,你可以参考下
快速回复
限100 字节
 
上一个 下一个