小编use*_*974的帖子

Qt:创建一个"svg图像按钮"

我是Qt的新手所以请原谅我的无知.

我正在尝试使用QSizePolicy :: Preferred为水平和垂直创建一个'svg图像按钮'.那部分有效.调整窗口大小时,按钮会按照我想要的方式增长和缩小...但按钮内的图像保持相同的大小.我想用按钮缩放图像.我试图重载resizeEvent,并调用setImageSize,但是无限递归.

#ifndef SVGPUSHBUTTON_H
#define SVGPUSHBUTTON_H

#include <QtGui>

class SVGPushButton : public QPushButton
{
public:
    SVGPushButton(QString path, QString name = "");
    ~SVGPushButton();

    void resizeEvent(QResizeEvent * event);
private:
};

#endif // SVGPUSHBUTTON_H

#include "SVGPushButton.h"

SVGPushButton::SVGPushButton(QString svgPath, QString name)
: QPushButton(name)
{
    QIcon icon(svgPath);
    setSizePolicy( QSizePolicy::Preferred, QSizePolicy::Preferred );
    setFlat(true);
    setIcon(icon);
}

SVGPushButton::~SVGPushButton()
{}

void SVGPushButton::resizeEvent(QResizeEvent * event)
{
    setIconSize( event->size() );
}
Run Code Online (Sandbox Code Playgroud)

c++ qt

7
推荐指数
1
解决办法
1万
查看次数

Qt:QScrollArea中的自定义小部件

我正在尝试创建自定义小部件.我的Widget渲染自己,除非它在滚动区域内.以下代码有效.如果我在MainWindow构造函数中将if(0)更改为if(1),它将不会呈现"Hello World"字符串.我假设我必须(重新)实现一些额外的方法,但到目前为止,我无法通过反复试验找到正确的方法.

// hellowidget.h
#ifndef HELLOWIDGET_H
#define HELLOWIDGET_H

#include <QtGui>

class HelloWidget : public QWidget
{
    Q_OBJECT
public:
    HelloWidget(QWidget *parent = 0);
    void paintEvent(QPaintEvent *event);
};

#endif // HELLOWIDGET_H

// hellowidget.cpp
#include "hellowidget.h"
HelloWidget::HelloWidget(QWidget *parent)
: QWidget(parent)
{
}
void HelloWidget::paintEvent(QPaintEvent *event)
{
     QPainter painter(this);
     painter.drawText(rect(), Qt::AlignCenter, "Hello World");
}

// mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QtGui>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
};

#endif // MAINWINDOW_H

// mainwindow.cpp
#include "mainwindow.h" …
Run Code Online (Sandbox Code Playgroud)

c++ qt qwidget

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

c++ ×2

qt ×2

qwidget ×1