标签: qt4

堆块修改过去的请求大小

更新:此行似乎生成错误:*line = color;

我收到以下错误,但我不明白它可以来自哪里:

错误:

HEAP [testQt.exe]:0B444FE8处的堆块修改为0B44C6B0,请求大小为76c0

生成它的行:

return QPixmap::fromImage(qimage);
Run Code Online (Sandbox Code Playgroud)

从:

QPixmap Interpolation::getData() {
    QPointF pt(0, 0);
    QRgb color;
    QImage qimage(m_width, m_height, QImage::Format_ARGB32);
    qimage.fill(Qt::transparent);

    for (int i(0); i < m_height; ++i) {
        m_progress->setValue(m_width+i);
        QRgb *line = (QRgb *)qimage.scanLine(i);
        for (int j(0); j < m_width; ++j) {
            pt.setX(j);
            pt.setY(i);
            line += 1;
            if (isInHull(pt)) {
                color = colorScale(interp(&pt));
                *line = color; //If I remove this part the program won't crash
            }
        }
    }  
    return QPixmap::fromImage(qimage);
}
Run Code Online (Sandbox Code Playgroud)

如果它有帮助:

QRgb Interpolation::colorScale(qreal value) …
Run Code Online (Sandbox Code Playgroud)

c++ memory heap qt qt4

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

当我尝试将一对插入地图时,Qt程序会出现故障

我正在研究我的第一个Qt应用程序,小部件,当我尝试用一<int, QString>对填充标准库映射时,我得到了一个段错误.我的目标是用int键和QString值填充地图.我不知道对是否是最好的方法,所以任何建议都会很棒.

这是除main之外唯一的源文件.

#include "linuxtips.h"
#include "ui_linuxtips.h"

LinuxTips::LinuxTips(QWidget *parent) :
  QWidget(parent),
  ui(new Ui::LinuxTips)
{
  loadRandTip();
  ui->setupUi(this);
}

LinuxTips::~LinuxTips()
{
  delete ui;
}

void LinuxTips::on_learnMore_clicked()
{

}

void LinuxTips::on_viewAll_clicked()
{

}

void LinuxTips::loadRandTip()
{
  int i = 0;
  std::map<int, QString>::iterator it;

  QString line;
  QFile inputFile(":/tipFile.txt");
  inputFile.open(QIODevice::ReadOnly);

  QTextStream in(&inputFile);
  do{
    line = in.readLine();
  //  this->TipMap.insert(it, std::pair<int, QString >(i,line));
    i++;
  }while(!in.atEnd());
}
Run Code Online (Sandbox Code Playgroud)

如果我取消注释this->TipMap.insert(it, std::pair<int, QString >(i,line));,它将运行.由于它是一个seg错误,我确定它是一个内存溢出或空指针,但我只是不确定它是什么.谢谢你的帮助.

c++ qt4 map segmentation-fault

0
推荐指数
1
解决办法
277
查看次数

Qt - 如何从64开始设置QTableWidget行索引而不是从0开始?

我有128个项目的结构向量.我应该将前64个项目放在第一个QTableWidget中,剩余的64个项目放到第二个QTableWidget中.必须在我的结构向量中显示"索引"数字.那些是Id号码.我使用UI设计器设计了我的ui,我尝试在那里更改QTableWidget第一行号,但它没有用.如何初始化索引以0开头的第一个tablewidget以及索引从64开始的第二个tablewidget.请帮助guyz ...在此先感谢.


请帮我解决这个问题.

我将使用快照图像清楚地解释它.!这里我有2个QTableWidgets.每个表窗口小部件的行ID都为1.第二个小部件的行ID 不应该与1.相反,它必须是65.(因为我有128个项目,前64个项目进入第一个表格,其余64个项目应放在第二个表格中).希望大家都明白我的要求.请帮我.在此输入图像描述

qt4 qtablewidget qt4.7 qt4.8 qmodelindex

0
推荐指数
1
解决办法
4513
查看次数

Qt忽略const说明符

我创建了简单的代码片段,以显示我注意到的奇怪行为.而已:

#include <QCoreApplication>
#include <QLineEdit>

class MyObject : public QWidget
{
public:
    explicit MyObject(QWidget *parent = 0) : QWidget(parent) {
        editor = new QLineEdit(this);
    }

    void setValue(const QString &s) const {
        editor->setText(s);
        editor->setReadOnly(true);
        editor->setMaxLength(s.length());
    }

private:
    QLineEdit *editor;
};

int main(int argc, char **argv)
{
    QCoreApplication app(argc, argv);
    return app.exec();
}
Run Code Online (Sandbox Code Playgroud)

MyObject::setValue函数有const说明符,但这段代码编译得很好.需要注意的是setText,setReadOnlysetMaxLength功能都没有const:

void setText(const QString &);
void setReadOnly(bool);
void setMaxLength(int);
Run Code Online (Sandbox Code Playgroud)

我只是想知道导致这种行为的原因是什么?我使用Qt 4.7.4和MingGW 4.6.2.

c++ qt const qt4

0
推荐指数
1
解决办法
83
查看次数

Qt4中的信号和插槽 - 不工作

我正在使用Qt4和Qt Creator.我无法将自定义插槽写入UI中的进度条.如何为ui文件中的特定小部件编写自定义插槽?在我的场景中,信号不是来自ui元素.

以下代码在运行时产生错误:

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include<QFile>
#include<QFileInfo>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

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

private slots:
    void on_btcopy_clicked();
    void on_btquit_clicked();
    void ChangeValue(qint64 val);

private:
    Ui::MainWindow *ui;
};

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

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_btcopy_clicked()
{
    QFileInfo *qfi=new QFileInfo("C:\\Users\\kiran\\Desktop\\test\\a.iso");
    qDebug("%d" ,qfi->size());
    QFile *qf=new QFile();
    QFile fromFile("C:\\Users\\kiran\\Desktop\\test\\a.iso"); …
Run Code Online (Sandbox Code Playgroud)

qt qt4 signals-slots qt-creator

0
推荐指数
1
解决办法
377
查看次数

如何在Qt中连续写入文件?

我把这段代码写成函数,每次调用这个函数,我都要写入文件.但是这个函数只写一次到文件.每当我从windows打开文件时我发现只写了一个字文件.每次打电话时如何连续写入文件?

/* Try and open a file for output */
    QString outputFilename = "Results.txt";
    QFile outputFile(outputFilename);
    outputFile.open(QIODevice::WriteOnly);

    /* Check it opened OK */
    if(!outputFile.isOpen()){
    qDebug() <<"- Error, unable to open" << outputFilename << "for output";
    return ;
    }

    /* Point a QTextStream object at the file */
    QTextStream outStream(&outputFile);

    /* Write the line to the file */
    outStream <<"\n"<< szTemp;//"Victory!\n";

    /* Close the file */
    outputFile.close();
Run Code Online (Sandbox Code Playgroud)

qt qt4

0
推荐指数
1
解决办法
997
查看次数

如何清除QSortFilterProxyModel的过滤器?

而不是做这样的事情:( proxyModel是一个QSortFilterProxyModel)

proxyModel->setFilterRegExp(".*");

有没有正确的方法来清除过滤器?因为那对我来说不对劲.

qt4

0
推荐指数
1
解决办法
1698
查看次数

在Dev-C++中包含Qt库

我想知道的是如何在Dev-C++中导入Qt库,因此它将提供与QT Creator 2.7.0相同的功能.我知道如何在Dev-C++编译器选项中添加'include'和'libraries'文件夹.

但问题是:我从哪里获取这些库,以便Dev-C++可以提供与Qt Creator 2.7.0完全相同的功能?

有任何想法吗?

c++ windows qt4 dev-c++

0
推荐指数
1
解决办法
3588
查看次数

使用Qt信号和插槽更改另一个类的标签文本

我正在尝试从另一个类更改类Label的文本.我有类MainWindow,它包含Label.

我也有一个Bot类,我想从中改变label的值.

我正在尝试创建信号和插槽,但我不知道从哪里开始.

我创建了信号和插槽,如下所示:

//in mainwindow.h
signals:
void changeTextSignal();

private slots:
void changeText();

//in mainwindow.cpp
void MainWindow::changeText(){
this->label->setText("FooBar");
}
Run Code Online (Sandbox Code Playgroud)

但我不知道如何连接信号以便能够从另一个类中更改Label的文本.

c++ qt4 signals-slots qt-creator qt5

0
推荐指数
1
解决办法
3635
查看次数

如何从QTableWidget获取许多QComboBoxes的文本

我已经使用setCellWidget 将许多 QComboBox插入到QTableWidget中(我不知道qcombobox的数量,因为它来自MySQL)。但是当我想从表中获取其文本时

self.table.item(0,1).itemText() 
Run Code Online (Sandbox Code Playgroud)

要么

self.table.item(0,1).text() 
Run Code Online (Sandbox Code Playgroud)

要么

self.table.item(0,1).currentText() 
Run Code Online (Sandbox Code Playgroud)

它不起作用。通常,我可以使用来获取文本,combobox.currentText()但是表具有许多组合框,而且我不知道行和列(x,y)的信息。所以我应该使用类似.item(14,1).text()的东西

python qt qt4 pyqt pyqt4

0
推荐指数
1
解决办法
1946
查看次数