小编p.i*_*.g.的帖子

进度条代理上的自定义颜色

一直尝试这样做了很长一段时间,并从我能找到的每个论坛帖子中获取建议,但我仍然无法解决它.这是我目前的代码,我真的想改变进度条上的块的颜色.除颜色外,其他所有设置都有效.

在我的工作区对象中填充MainWindow上的一个子视图.

Workspace::Workspace( QWidget* parent) : QWidget( parent )
{
    QTableView* tableView = new QTableView();
    // ...
    tableView->setItemDelegate(new ProgressBarDelegate);
}
Run Code Online (Sandbox Code Playgroud)

delegate.cpp看起来像这样:

ProgressBarDelegate::ProgressBarDelegate( QObject* parent )
: QStyledItemDelegate(parent)
{
}

void ProgressBarDelegate::paint( QPainter *painter,
                                 const QStyleOptionViewItem &option,
                                 const QModelIndex &index) const
{
    if (index.column() == 2)
    {
        int progressPercentage = index.model()->data(index, Qt::DisplayRole).toInt();

        QStyleOptionProgressBarV2 progressBarOption;
        progressBarOption.rect = QRect(option.rect.x(), option.rect.y() + 5 , option.rect.width(), option.rect.height() / 1.5);
        progressBarOption.minimum = 0;
        progressBarOption.maximum = 100;
        progressBarOption.progress = progressPercentage;
        QPalette pal = progressBarOption.palette;
        QColor col = …
Run Code Online (Sandbox Code Playgroud)

c++ qt

3
推荐指数
1
解决办法
4384
查看次数

QTreeWidget - 禁用在顶层放置

我有一个QTreeWidget并且启用了拖放功能。尽管我希望用户能够在树内拖放项目,但我不希望他们将任何拖动的项目放在顶层。我怎样才能做到这一点 ?

假设我已经预定义了顶级项目的类别,并且我不想扩展该列表。但在较低级别中,用户可以创建任意数量的项目,并且她/他也可以移动这些项目。

c++ qt

3
推荐指数
1
解决办法
2757
查看次数

使视图的宽度适合QComboBox的最长项目

我有一个QComboBox包含长字符串的字符串.长意味着琴弦比QComboBox我的宽度宽GUI.在这种情况下,Qt将以这种方式显示项目:

QComboBox

之前我正在使用的MatLab用户不太友好,GUI但对于下拉列表,我认为MatLab解决方案更好:

MatLab下拉列表

有没有简单的方法来实现类似的结果,Qt或者我是否必须为此目的设置自定义模型和视图?

c++ qt

3
推荐指数
1
解决办法
685
查看次数

如何在 QTreeWidget 中设置图标大小?

如何设置 Qtreewidget 中项目的图标大小?到目前为止我已经尝试过

QTreeWidget.setIconSize(QSize(32,32))

但所做的只是增加宽度,而不是高度。

然而,一个

print QTreeWidget.iconSize()

显示正确的结果: PyQt4.QtCore.QSize(32, 32)

有没有人对 QTreewidget 的工作原理有更好的了解?

python qt pyqt

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

类构造函数参数C++

我正在创建一个用于ax和y笛卡尔坐标系的pair1类.x和y是双打.我需要有3个构造函数.

  1. 没有参数,默认x和y为零.
  2. 一个争论将x和默认y分配给零.
  3. 一个arugeument默认x为零并指定y.我不确定我是否正确设置了这门课程.我得到了以下错误:pair1::pair1(double)并且pair1::pair1(double)不能超载.

我的课:

class pair1
{
private:
    double x;
    double y;

public:
    pair1(){ x = 0.0, y = 0.0; }    
    pair1( double a ){ x = a; y =0.0; }
    pair1(double b){ x = 0.0;  y = b; }
};
Run Code Online (Sandbox Code Playgroud)

c++ constructor arguments class

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

Qt中的模糊错误

我正在尝试制作游戏,我为玩家创建了一个类.该类继承了"Entity",它继承了QGraphicsItem.

#ifndef PLAYER_H
#define PLAYER_H

#include "entity.h"

class Player : public Entity
{
public:
    Player( QString, int, int, int position );

    QRectF boundingRect() const;
    void paint( QPainter *painter,
                const QStyleOptionGraphicsItem *option,
                QWidget *widget );

    void move_north();
    void move_south();
    void move_west();
    void move_east();

    void start_moving();
    void stop_moving();

    void switch_step();

    bool its_moving();

    void change_pos(int);

private:
    QPoint position;
    bool is_moving;

private signals:
    void Move();
};

#endif // PLAYER_H
Run Code Online (Sandbox Code Playgroud)

但我仍然在第33行收到错误的"预期":'在'受保护'之前'.

c++ qt class

2
推荐指数
2
解决办法
645
查看次数

在 Qt 中使用像素图或位图快速绘图

我需要在 Qt 中快速绘制小部件,但我不想使用任何准备好的东西。我有一些浮动数据,例如QVector< float >数据,我需要在小部件上绘制它。但我不希望使用paintEventQPainter直接就可以了。有没有机会将此数据转换为位图(像素图?)并直接加载它以显示在小部件上?如何从浮点数创建位图?

plot qt bitmap repaint pixmap

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

如何在Qt中发送文件?

我正在尝试将文件从客户端发送到服务器。但它只发送文件的一部分。当文件大小超过 2Mb 时,似乎会发生这种情况。可能是什么问题?对不起,如果这是一个愚蠢的问题,但我无法在谷歌中找到答案。

这是客户端 cpp:

#include "widget.h"

Widget::Widget(QWidget *parent) :
    QWidget(parent)
{
    progressBar = new QProgressBar(this);

    tcpSocket = new QTcpSocket(this);

    fileLabel = new QLabel(this);
    progressLabel = new QLabel(this);

    fileBtn = new QPushButton(this);
    fileBtn->setText("Open");

    sendBtn = new QPushButton(this);
    sendBtn->setText("Send");

    layout = new QGridLayout;
    layout->addWidget(fileBtn, 0, 0);
    layout->addWidget(sendBtn, 0, 1);
    layout->addWidget(fileLabel, 1, 0);
    layout->addWidget(progressBar, 2, 0);

    connect(fileBtn, &QPushButton::clicked, this, &Widget::fileOpened);
    connect(sendBtn, &QPushButton::clicked, this, &Widget::onSend);

    setLayout(layout);
}

Widget::~Widget()
{
}

void Widget::fileOpened()
{
    fileName = QFileDialog::getOpenFileName(this, tr("Open file"));
    QFileInfo fileInfo(fileName);
    fileLabel->setText(fileInfo.fileName() + " …
Run Code Online (Sandbox Code Playgroud)

c++ qt client server

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

指向成员函数的指针向量与多个对象c ++

考虑以下代码:

class A
{
public:
    void aFoo() {}
};

class B
{
public:
    void bFoo() {}
};

class C
{
public:
    void c1Foo() {}
    void c2Foo() {}
};
Run Code Online (Sandbox Code Playgroud)

无论代码架构如何,是否可以创建指向成员函数的指针向量,即使这些函数属于多个类?

在这种情况下,继承不是解决方案,因为我们不知道我们想在一个类中使用多少函数(C类有两个函数).但我们知道它们都有相同的原型.

c++ function-pointers

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

更改QCheckBox指示器矩形颜色

我试图只改变QCheckBox指示矩形的颜色.

目前我成功绘制了矩形的右边和底线.可能我在这里做错了.

这是我的代码:

CheckBoxWidget.cpp

CheckBoxWidget::CheckBoxWidget(QObject *poParent)
    : QItemDelegate(poParent)
{
}

void CheckBoxWidget::drawCheck( QPainter *painter,
                                const QStyleOptionViewItem &option,
                                const QRect & rect,
                                Qt::CheckState state) const
{
    QRect oCheckBoxRect =
            QApplication::style()->subElementRect( QStyle::SE_CheckBoxIndicator, &option);

    painter->setPen(Qt::white);
    painter->drawRect(oCheckBoxRect);

    QItemDelegate::drawCheck(painter, option, oCheckBoxRect, state);
}
Run Code Online (Sandbox Code Playgroud)

CheckBoxWidget.h

class CheckBoxWidget : public QItemDelegate
{
    Q_OBJECT

public:
    CheckBoxWidget(QObject *poParent = 0);
    virtual ~CheckBoxWidget();

protected:
    virtual void drawCheck( QPainter *painter,
                            const QStyleOptionViewItem &option,
                            const QRect &,
                            Qt::CheckState state) const;
};
Run Code Online (Sandbox Code Playgroud)

有什么建议 ?

qt qitemdelegate qcheckbox

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