小编Tat*_*nho的帖子

Qt删除QVBoxLayout上的小部件之间的空白空间

我有烦人的问题.我创建了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,没有任何空间.

c++ qt spacing qvboxlayout

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

使用Python在图像上进行FFT

我在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]

好的,让我们拍一张照片. test.png

假设我不想打开它并保存为灰度图像.所以我这样做.

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)

python image fft dft

7
推荐指数
2
解决办法
2万
查看次数

来自不同文件的 Flask 路由不起作用

我开始构建一个基于 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)

python rest routes flask

5
推荐指数
0
解决办法
1490
查看次数

Qt paintEvent崩溃了

我试图在我的小部件上绘制简单的板.

当我试图自动化时,我的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)

c++ qt for-loop paintevent

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

在Python中向二维数组添加列

我正在尝试在 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)

python arrays concatenation

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

Qt 小部件中的选择区域

我的选择区域有问题。

如果您单击 Windows 桌面并拖动鼠标,您将看到选择区域。我正在努力实现大致相似的目标。

您对如何实现这一目标有什么想法吗?

c++ graphics qt selection area

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

在 Qt 中使用像素图或位图快速绘图

我需要在 Qt 中快速绘制小部件,但我不想使用任何准备好的东西。我有一些浮动数据,例如QVector< float >数据,我需要在小部件上绘制它。但我不希望使用paintEventQPainter直接就可以了。有没有机会将此数据转换为位图(像素图?)并直接加载它以显示在小部件上?如何从浮点数创建位图?

plot qt bitmap repaint pixmap

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

带有std :: ostream运算符的XOR运算符

我写了一个代表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)

c++ operators xor ostream

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