为什么,当我按下时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) 我正在使用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) 我正在尝试为我的文本编辑器编写应用程序菜单,但我不明白为什么信号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) 我正在编写一个简单的文本编辑器并在其中使用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) qt ×3
c++ ×2
events ×1
keypress ×1
pyqt4 ×1
python-3.x ×1
qaction ×1
qfiledialog ×1
qpixmap ×1
qtabwidget ×1
qtextedit ×1