小编Ily*_*nko的帖子

为什么PyQt中的keyPress事件不能用于密钥Enter?

为什么,当我按下时Enter,该keyPressEvent方法不能满足我的需要?它只是将光标移动到一个新行.

class TextArea(QTextEdit):
    def __init__(self, parent):
        super().__init__(parent=parent)
        self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        self.show()

    def SLOT_SendMsg(self):
        return lambda: self.get_and_send()

    def get_and_send(self):
        text = self.toPlainText()
        self.clear()
        get_connect(text)

    def keyPressEvent(self, event):
        if event.key() == QtCore.Qt.Key_Enter: 
            self.get_and_send()
        else:
            super().keyPressEvent(event)
Run Code Online (Sandbox Code Playgroud)

events keypress pyqt4 python-3.x

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

为什么QPixmap :: scaled()不起作用?

我正在使用QPixmap和QPainter编写简单的应用程序.在我的程序中,我需要加载一些图像并调整它们的大小.我使用了QPixmap :: scaled(),但图像没有缩放.我做错了什么?这是我的代码:

chesstile.cpp

#include "chesstile.h"

ChessTile::ChessTile(QWidget *parent) :
    QLabel(parent)
{
}

void ChessTile::paintEvent(QPaintEvent *)
{
    const QString &fileName = "images/white_king.png";
    QPixmap bgPixmap(fileName);
    bgPixmap.scaled(QSize(64, 64));
    QPainter painter(this);
    painter.drawPixmap(0, 0, bgPixmap);
}
Run Code Online (Sandbox Code Playgroud)

chesstile.h

#ifndef CHESSTILE_H
#define CHESSTILE_H

#include <QLabel>
#include <QString>
#include <QPainter>
#include <QPixmap>
#include <QSize>

class ChessTile : public QLabel
{
    Q_OBJECT
public:
    ChessTile(QString fileName,
              QString tileColor,
              QWidget *parent = 0);
    void paintEvent(QPaintEvent *);

private:

signals:

public slots:

};

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

c++ qt qpixmap

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

为什么我无法将QAction SIGNAL与QFileDialog SLOT连接?

我正在尝试为我的文本编辑器编写应用程序菜单,但我不明白为什么信号triggered不起作用.它应该打开一个QFileDialog::getOpenFileName,但它不会发生.为什么?

main.cpp中

#include "mainwindow.h"
#include "centralwidget.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    MainWindow      *mainWindow     = new MainWindow;
    CentralWidget   *centralWidget  = new CentralWidget;

    mainWindow->setCentralWidget(centralWidget);
    mainWindow->show();

    return a.exec();
}
Run Code Online (Sandbox Code Playgroud)

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QMenu>
#include <QMenuBar>
#include <QStatusBar>
#include <QAction>
#include <QFileDialog>
#include <QString>

class MainWindow : public QMainWindow
{
public:
    MainWindow();

public slots:
    void slotFileDialog();
};

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

mainwindow.cpp

#include "mainwindow.h"

MainWindow::MainWindow()
{   
    QMenu *fileMenu = new …
Run Code Online (Sandbox Code Playgroud)

qt qfiledialog qaction

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

如何从QTabWidget获取小部件?

我正在编写一个简单的文本编辑器并在其中使用QTabWidget.对于来自QMenu的一些QActon,我需要使用QTabWidget中的一些小部件.QTabWidget :: widget()返回QWidget,但我需要QTextEdit,我使用addTab()添加到QTabWidget.如何从QTabWidget获取QTextEdit

QTextEdit *textEdit = new QTextEdit;
QTabWidget *tabWidget = new QTabWidget;
tabWidget->addTab(textEdit, "text_edit");

//How to get textEdit by index or somethin from tabWidget?
Run Code Online (Sandbox Code Playgroud)

c++ qt qtextedit qtabwidget

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