我有烦人的问题.我创建了QVBoxLayout,我添加了我的小部件.这是我的构造函数中的示例:
layout = new QVBoxLayout;
layout->setMargin(0);
layout->setContentsMargins(QMargins(0,0,0,0));
layout->setSpacing(0);
Run Code Online (Sandbox Code Playgroud)
然后我有添加小部件的功能.
layout->addWidget(_wave);
Run Code Online (Sandbox Code Playgroud)
_wave是我自己的小部件.但是你可以添加你想要的任何东西,例如QButton.
我想要实现什么? 类似这样,但没有任何空格beidgeween添加到布局.只是QButtons或其他小部件,相互粘贴.
我添加了setMargins,setSpacing等等.请帮助我,我真的不知道该怎么做.
对不起颜色,但我想提到我想要实现的目标.我有mainWindow,我在其上添加了QWidget.这个小部件有蓝色背景.然后到布局,我添加了一些小部件,在这个图像上是橙色的.我只是想确定,小部件之间的这个蓝色背景是不可见的.我希望在widget下有widget,没有任何空间.
我在Python中使用FFT实现了一个问题.我有完全奇怪的结果.好吧,我想打开图像,获取RGB中每个像素的值,然后我需要在它上面使用fft,然后再次转换为图像.
我的步骤:
1)我正在使用Python中的PIL库打开图像
from PIL import Image
im = Image.open("test.png")
Run Code Online (Sandbox Code Playgroud)
2)我得到了像素
pixels = list(im.getdata())
Run Code Online (Sandbox Code Playgroud)
3)我将每个像素分成r,g,b值
for x in range(width):
for y in range(height):
r,g,b = pixels[x*width+y]
red[x][y] = r
green[x][y] = g
blue[x][y] = b
Run Code Online (Sandbox Code Playgroud)
4).我们假设我有一个像素(111,111,111).并在所有红色值上使用fft
red = np.fft.fft(red)
Run Code Online (Sandbox Code Playgroud)
然后:
print (red[0][0], green[0][0], blue[0][0])
Run Code Online (Sandbox Code Playgroud)
我的输出是:
(53866+0j) 111 111
Run Code Online (Sandbox Code Playgroud)
我认为这是完全错误的.我的图像是64x64,而来自gimp的FFT完全不同.实际上,我的FFT只给出了具有巨大值的数组,这就是为什么我的输出图像是黑色的.
你知道问题出在哪里吗?
[编辑]
我按照建议改变了
red= np.fft.fft2(red)
Run Code Online (Sandbox Code Playgroud)
然后我扩展它
scale = 1/(width*height)
red= abs(red* scale)
Run Code Online (Sandbox Code Playgroud)
而且,我只得到黑色图像.
[EDIT2]
假设我不想打开它并保存为灰度图像.所以我这样做.
def getGray(pixel):
r,g,b = pixel
return (r+g+b)/3
im = Image.open("test.png")
im.load()
pixels = list(im.getdata())
width, …
Run Code Online (Sandbox Code Playgroud) 我开始构建一个基于 Flask 的应用程序。这个想法是使用 REST API 进行一些操作,没有任何 HTML 等,只有简单的 JSON 响应。
如果我将所有内容都放在一个文件中,则一切似乎都可以正常工作。
tasks = [ # pylint: disable=C0103
{
'id': 1,
'title': 'First',
'content': u'First task'
},
{
'id': 2,
'title': 'Second',
'content': u'Second task'
}
]
app = Flask(__name__)
@app.route('/api/v1.0/tasks/', methods=['GET'])
def get_tasks():
"""
[GET] Retrieves all tasks
"""
return jsonify({'tasks': tasks})
if __name__ == '__main__':
app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)
当我运行我的烧瓶应用程序时,这非常有效。当我想将其移动到其他文件时,问题就开始了。我刚刚将get_tasks方法移至 /my_app/views.py 并将声明app = Flask( name )移至 my_app/ init .py 中。当然,我在主 app.py 文件中添加了导入。服务器正常启动,但我无法得到结果。当我将方法移回 app.py 时,它就起作用了。我在这里缺少什么?
编辑
应用程序.py
from my_app …
Run Code Online (Sandbox Code Playgroud) 我试图在我的小部件上绘制简单的板.
当我试图自动化时,我的paintEvent崩溃了.我认为它是由for循环引起的,我是对的吗?如何以其他方式绘画?
void Widget::paintEvent(QPaintEvent *event)
{
QPixmap myPix( QSize(20,20) );
QPainter painter(this);
for(int i = 0; i < 100; i+5){
painter.drawLine(QPointF(i,0),QPointF(i,max));
}
this->setPixmap(myPix);
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Python 中向二维数组添加额外的列,但我陷入困境。我有一个如下所示的二维数组:
['000', '101']
['001', '010']
['010', '000']
['011', '100']
Run Code Online (Sandbox Code Playgroud)
然后我交换第二列中的 2 个元素,得到如下内容:
['000', '101']
['001', '000']
['010', '010']
['011', '100']
Run Code Online (Sandbox Code Playgroud)
我想现在将最后一列添加为第三列,如下所示:
['000', '101', '101']
['001', '010', '000']
['010', '000', '010']
['011', '100', '100']
Run Code Online (Sandbox Code Playgroud)
但我只设法得到这个:
['000', '101']
['001', '000']
['010', '010']
['011', '100']
101
000
010
100
Run Code Online (Sandbox Code Playgroud)
我正在添加这样的列:
col = column(data,1)
data_res += col
Run Code Online (Sandbox Code Playgroud)
我正在创建一个像这样的数组:
with open('data.txt', 'r') as f:
for line in f:
line_el = line.split()
data.append(line_el)
Run Code Online (Sandbox Code Playgroud)
我这样交换:
def swap(matrix, id_l, id_r):
matrix[id_l][1], matrix[id_r][1] = matrix[id_r][1],matrix[id_l][1]
return matrix …
Run Code Online (Sandbox Code Playgroud) 我的选择区域有问题。
如果您单击 Windows 桌面并拖动鼠标,您将看到选择区域。我正在努力实现大致相似的目标。
您对如何实现这一目标有什么想法吗?
我需要在 Qt 中快速绘制小部件,但我不想使用任何准备好的东西。我有一些浮动数据,例如QVector< float >
数据,我需要在小部件上绘制它。但我不希望使用paintEvent
和QPainter
直接就可以了。有没有机会将此数据转换为位图(像素图?)并直接加载它以显示在小部件上?如何从浮点数创建位图?
我写了一个代表Qubit的课程.因此,对象只有一个值,state,0或1(bool).为了进行必要的计算,我重载了+,*,^等运算符.似乎一切都是正确的+和*,也与^,但只有我不会使用它与std :: ostream运算符.
Qubit x5, x6;
cout << x5^x6; !ERROR!
Run Code Online (Sandbox Code Playgroud)
但随着
Qubit x5, x6;
Qubit z = x5^x6;
cout << z;
Run Code Online (Sandbox Code Playgroud)
它正在工作.我的标准:运营商
std::ostream & operator <<(std::ostream & os, const Qubit & qubit)
{
os << qubit.GetState();
return os;
}
Run Code Online (Sandbox Code Playgroud)
和我的XOR操作员
Qubit & Qubit::operator ^(const Qubit & qubit)
{
Qubit *q = new Qubit;
((this->state == 1 && qubit.state == 0) ||
(this->state == 0 && qubit.state == 1)) ? q->SetState(1) : q->SetState(0);
return *q;
}
Run Code Online (Sandbox Code Playgroud)