我试图通过除去线的长度来减少画笔笔划的间距(在QPixmap上).如果我乘以线,则间距增加,但间距不会减小.此外,线条可以具有的最小长度为1.显然划分它会减少 - 可能低于允许的数量?不确定这是否会对像素图的绘制产生负面影响.
这是违规代码:
QLineF line = QLineF(lastPoint, endPoint);
float lineLength = line.length();
qDebug() << line.length();
line.setLength(lineLength / 50.0f);
qDebug() << line.length();
painter.drawPixmap(line.p1().x() - 16, line.p2().y() - 16, 32, 32, testPixmap);
Run Code Online (Sandbox Code Playgroud)
以下是此特定文件中的所有代码:
#include "inkspot.h"
#include "inkpuppet.h"
#include "ui_inkpuppet.h"
#include "newdialog.h"
#include "ui_newdialog.h"
#include <QtCore>
#include <QtGui>
#include <QWidget>
#include <QPainter>
#include <QPaintEvent>
InkSpot::InkSpot(QWidget *parent) :
QWidget(parent)
{
widget = this;
drawing = false;
}
void InkSpot::mousePressEvent(QMouseEvent *event)
{
if(event->button() == Qt::LeftButton)
{
lastPoint = event->pos();
drawing = true;
}
} …Run Code Online (Sandbox Code Playgroud) 我一直在谷歌搜索,没有找到解决方案,这是令人难以置信的!应该很简单.我正在尝试让我的PyQT UI将文本文件打开到QTextBrowser或QTextEdit中.
但QTextEdit不能'setSource'和QTextBrowser除了HTML之外不能显示任何内容,如果我打开文本文件它没有任何段落,它就是一行.该区域还将显示日志文件,我不希望我的日志文件以html格式输出!
我想要做的就是用纯文本格式显示文本文件的内容.为什么这么愚蠢?
我试图让我的容器中的qquickview透明,只显示没有背景的QML文件中的元素.
有没有更好的方法来实现这个?这是相关的代码,你可以看到我已经注释了将QML添加到它,以便唯一的攻击者是包含QQuickView的QWidget
QML将仅使用文本制作类似于Apple的"Cover Flow"的菜单.我只希望它生成的文本可见.
目前它具有坚实的白色背景.
QQuickView *view = new QQuickView();
QWidget *container = QWidget::createWindowContainer(view, this);
container->setObjectName("wrappingContainer");
container->setMinimumSize(1000, 240);
container->setMaximumSize(1000, 240);
container->setFocusPolicy(Qt::TabFocus);
//view->setSource(QUrl("qrc:/qml/wrappingMenu.qml"));
ui->testLayout->addWidget(container);
Run Code Online (Sandbox Code Playgroud) 无论焦点如何,我都希望能够随时按下特定的 Qt::Key。例如,ctrl+shift+F 激活一个使窗口重新聚焦的方法。
我已经谷歌搜索了如何在没有焦点的情况下监控输入,但我找不到任何东西。
我正在尝试自定义我的UI.我不知道如何使样式表条目属于除父项和所有子项之外的任何内容.例如,我运行此行:
self.lnchTab.setStyleSheet('QWidget { background-color: #1d1d1d ; color: #f8f8f8}')
Run Code Online (Sandbox Code Playgroud)
我将self.lnchTab下面的所有元素都改为深灰色.我只希望self.lnchTab是深灰色,而不是文本,输入和按钮.
我该如何做到这一点?
谢谢你的帮助.谷歌没有提供任何有用的东西,甚至接近我想要找到的东西.
在你回复这篇文章之前,没有人问过我能找到的任何帖子.
我正在检查是否存在列表
if 'self.locList' in locals():
print 'it exists'
Run Code Online (Sandbox Code Playgroud)
但它不起作用.它从未认为它存在.这一定是因为我正在使用继承而在self.其他地方引用它,我不明白发生了什么.
请问有人可以解决一些问题吗?
这是完整的代码:
import maya.cmds as cmds
class primWingS():
def __init__(self):
pass
def setupWing(self, *args):
pass
def createLocs(self, list):
for i in range(list):
if 'self.locList' in locals():
print 'it exists'
else:
self.locList = []
loc = cmds.spaceLocator(n = self.lName('dummyLocator' + str(i + 1) + '_LOC'))
self.locList.append(loc)
print self.locList
p = primWingS()
Run Code Online (Sandbox Code Playgroud) 我正在尝试制作一个按钮,将小部件添加到布局中.
该小部件完全来自UI的另一个类.
通常我会指向另一个类(没有UI,带有小部件)的指针InkSpot *ink(类名称为InkSpot)然后我会说ui->paintAreaLayout->addWidget(ink->widget);但是那条线就会导致应用程序崩溃,如果我删除它并添加不引用该类的东西然后它不会崩溃.
我将提供大部分代码,以便您可以更好地了解我正在尝试做的事情.测试按钮位于第一个代码块的底部,该代码块是有问题的:
inkpuppet.cpp
#include "inkpuppet.h"
#include "ui_inkpuppet.h"
#include "newdialog.h"
#include "inkspot.h"
#include <Qt>
#include <QtCore>
#include <QtGui>
#include <QtWidgets>
#include <QDialog>
#include <QMainWindow>
InkPuppet::InkPuppet(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::InkPuppet)
{
ui->setupUi(this);
//connect the frame range boxes to the timeslider
connect(ui->lowerFrameBox, SIGNAL(valueChanged(int)), this, SLOT(setMinimum(int)));
connect(ui->upperFrameBox, SIGNAL(valueChanged(int)), this, SLOT(setMaximum(int)));
//connect the menu items
connect(ui->actionNew, SIGNAL(triggered()), this, SLOT(actionNew()));
//connect test
connect(ui->testButton, SIGNAL(clicked()), this, SLOT(testButton()));
}
InkPuppet::~InkPuppet()
{
delete ui;
}
void InkPuppet::setMinimum(int value)
{
ui->timeSlider->setMinimum(value);
} …Run Code Online (Sandbox Code Playgroud) 我已经阅读过关于将QProcess连接到信号槽的内容,但是我对如何实现自己的目的感到有点迷茫.
每个QProcess都存储在QList中
每个QProcess在到期时都需要被删除,无论是由Windows还是以其他方式终止.
当然,我会使用QObject :: connect()连接它的信号,用于死亡和插槽.但我不知道告诉它给我正确的信息.
connect(process, SIGNAL(destroyed()), this, SLOT(ProcessEnd()));
Run Code Online (Sandbox Code Playgroud)
应该告诉我它是否被破坏了.但是,没有任何信号会通过窗口或应用程序本身以外的任何其他方式发出警告.