当我的窗口发生变化时,我正在努力调整缓冲区的大小。除了这一部分之外,该过程的每个部分都按预期工作。
// in MyGame.h -
private:
ComPtr<ID3D11RenderTargetView> gRenderTarget;
...
// handle resize method:
void MyGame::UpdateBackbufferSize(UINT pWidth, UINT pHeight) {
/* 1. Clear render targets from device context */
gDeviceContext->OMSetRenderTargets(0, 0, 0);
/* 2. Release Rendering Target */
gRenderTarget->Release(); // ! CANNOT ACCESS client.h private Release()
/* 3. Resize buffer */
gSwapchain->ResizeBuffers(
0,
pWidth,
pHeight,
DXGI_FORMAT_UNKNOWN,
0
);
/* 4. Reset the buffer as target view */
ComPtr<ID3D11Texture2D> backBuffer;
gSwapchain->GetBuffer(0, __uuidof(ID3D11Texture2D), &backBuffer);
gDevice->CreateRenderTargetView(backBuffer.Get(), nullptr, &gRenderTarget);
backBuffer.Get()->Release();
/* 5. Set the new …Run Code Online (Sandbox Code Playgroud) 我在表格视图中正确调整行大小时遇到一个小问题。我有一个垂直标题,没有水平标题。我试过:
self.Popup.table.setModel(notesTableModel(datainput))
self.Popup.table.horizontalHeader().setVisible(False)
self.Popup.table.verticalHeader().setFixedWidth(200)
for n in xrange(self.Popup.table.model().columnCount()):
self.Popup.table.setColumnWidth(n,150)
Run Code Online (Sandbox Code Playgroud)
这工作得很好,但是当我尝试时:
for n in xrange(self.Popup.table.model().rowCount()):
self.Popup.table.setRowHeight(n,100)
Run Code Online (Sandbox Code Playgroud)
或者
for n in xrange(self.Popup.table.model().rowCount()):
self.Popup.table.resizeRowToContents(n)
Run Code Online (Sandbox Code Playgroud)
即使文本超过单元格的长度,也不会调整行的大小。
如何强制行适合数据?
我在这里找到了一些代码,其中显示了如何在隐藏小部件时调整窗口大小的示例,它对我有用。这是代码:
from PyQt4 import QtCore, QtGui
import sys
class MainWindow(QtGui.QWidget):
def __init__(self):
self.app = QtGui.QApplication(sys.argv)
super(MainWindow, self).__init__()
self.button = QtGui.QPushButton('Show/Hide')
self.button.setCheckable(True)
self.frame = QtGui.QFrame()
self.frame.setFixedHeight(100)
self.layout = layout = QtGui.QVBoxLayout()
layout2 = QtGui.QVBoxLayout()
self.setLayout(layout)
self.frame.setLayout(layout2)
layout.addWidget(self.button)
layout.addWidget(self.frame)
layout.addStretch(1)
layout2.addWidget(QtGui.QLabel('Yoyoyo'))
self.button.toggled.connect(self.clickAction)
def startup(self):
self.show()
sys.exit(self.app.exec_())
def clickAction(self):
checked = self.button.isChecked()
if checked:
self.frame.show()
else:
self.frame.hide()
QtCore.QTimer.singleShot(0, self.resizeMe)
def resizeMe(self):
self.resize(self.minimumSizeHint())
if __name__ == "__main__":
myApp = MainWindow()
myApp.startup()
Run Code Online (Sandbox Code Playgroud)
然后,我尝试通过分离 mainWindow 类和小部件类来修改它以匹配我现有的代码。这是执行此操作的代码。
from PySide import QtGui,QtCore
import sys
class MainWindow(QtGui.QMainWindow):
def __init__(self): …Run Code Online (Sandbox Code Playgroud) 我正在尝试实现一种功能,您可以通过单击按钮来隐藏或显示图形。但是,当图形再次隐藏时,对话框窗口的大小不会变回原来的大小。该self.resize()声明似乎被忽略了。我怎样才能做到这一点?然而,使用setFixedSize()作品时,我不希望尺寸被固定。我以为我可以使用某种方式“修复”它,setSizePolicy()但这没有帮助。
import sys
import matplotlib.pyplot as plt
from PyQt5.Qt import QSizePolicy
from PyQt5.QtWidgets import (
QDialog, QApplication, QGridLayout, QWidget, QGroupBox, QPushButton
)
from matplotlib.backends.backend_qt5agg import \
FigureCanvasQTAgg as FigureCanvas
class MainWindow(QDialog):
def __init__(self):
super().__init__()
self.layout = QGridLayout()
self.setLayout(self.layout)
self.settings = QGroupBox('Settings:')
self.settingsLayout = QGridLayout()
self.settings.setLayout(self.settingsLayout)
self.showFigureBtn = QPushButton('Show Figure')
self.settingsLayout.addWidget(self.showFigureBtn)
self.layout.addWidget(self.settings)
self.figureWidget = QWidget()
self.figureWidget.setMinimumSize(300, 300)
self.figureLayout = QGridLayout(self.figureWidget)
self.fig, self.ax = plt.subplots()
self.canvas = FigureCanvas(self.fig)
self.figureLayout.addWidget(self.canvas)
self.figureWidget.setLayout(self.figureLayout)
self.layout.addWidget(self.figureWidget)
self.figureWidget.setVisible(False)
self.showFigureBtn.clicked.connect(self.toggle_figure)
self.min_size = (300, …Run Code Online (Sandbox Code Playgroud) 这不是重复的!我对其他答案的结果不满意。如果您仍然认为它是重复的,请在您认为它是重复的原因之前发表评论!
我必须观察元素的大小变化。我尝试通过在offsetWidth属性上创建一个设置器来做到这一点,如下所示:
const div = document.querySelector("div");
div.addEventListener("resize", console.log);
div.addEventListener("click", () => console.log(div.offsetWidth));
let width = div.offsetWidth;
Object.defineProperty(div, "offsetWidth", {
get: () => width,
set: val => {
width = val;
div.dispatchEvent(new Event("resize"));
}
});
document.querySelector("button").onclick = () => div.style.width = "200px";Run Code Online (Sandbox Code Playgroud)
div {
background-color: #f00;
width: 300px;
height: 300px;
}Run Code Online (Sandbox Code Playgroud)
<div></div>
<button>
Set size
</button>Run Code Online (Sandbox Code Playgroud)
单击红色框以记录尺寸。然后按下按钮。什么都没发生。如果再次单击该框,它仍会显示旧尺寸。为什么这不起作用?
我正在弄清楚当我们设置fx=2和时,OpenCV resize() 函数如何计算线性插值fy=1。我写了以下最小工作示例,
import cv2
import numpy as np
pattern_img = np.zeros((6, 6), np.uint8)
pattern_img[:, 0::2] = 255
patteen_img_x2 = cv2.resize(pattern_img, None, fx=2, fy=1, interpolation=cv2.INTER_LINEAR)
Run Code Online (Sandbox Code Playgroud)
如果我们看pattern_img和的第一行pattern_img_x2,我们会得到,
pattern_img[0, :]
> array([255, 0, 255, 0, 255, 0], dtype=uint8)
pattern_img_x2[0, :]
> array([[255, 191, 64, 64, 191, 191, 64, 64, 191, 191, 64, 0]], dtype=uint8)
Run Code Online (Sandbox Code Playgroud)
我不知道数字 191 和 64 是如何计算的。我知道它实现了bilinear算法,但在本例中我们设置了fy=1,所以它应该是沿 x 轴的简单线性插值。但我不知道如何resize()计算这些插值数字。有人可以帮助我理解背后的算法吗?
我已经创建了一个 Web 组件,并尝试将 a 添加ResizeObserver到该元素。
ResizeObserver添加后,connectedCallback它似乎只在元素添加到 DOM 时触发一次,但在元素调整大小时不会再次触发。
我希望ResizeObserver当组件被其父元素强制调整大小时,将被触发。我已经检查并观察了开发人员工具中的元素大小,它确实调整了大小。
我还使用标准 HTML 元素(id:#foo)测试了相同的代码,并且回调有效。所以我只能假设问题与 Shadow DOM 有关。
\n规范说:
\n我可以确认第一点发生了。
\n我预计第五点应该会发生,但它从来没有发生过。如果检查元素,它的大小不是 0,0 并且会随页面调整大小。
\n我已经浏览了 Web 组件的 MDN 文档和ResizeObserver许多其他网站,据我所知,我的一切都是正确的。
这是代码的 JSFiddle:\n https://jsfiddle.net/h15e48fx/1/
\n我正在处理 3D CT 图像,并尝试将二进制分割掩码从 (564,359,359) 调整为 (128,128,128),如下所示:
from skimage.transform import resize
mask_resized= resize(binary_mask, (128, 128, 128), order=0)
Run Code Online (Sandbox Code Playgroud)
调整大小之前的二进制掩码如下所示:
生成的输出不是二进制的(产生 0 和 1 之间的一系列值),并且输出失真如下:
我尝试过image_resized_seg = np.rint(image_resized_seg),但这会为包含分割蒙版的某些切片生成全黑图像。
我也尝试了以下方法,它也给出了扭曲的图像,并且输出中缺少一些包含掩模的切片:
from scipy import ndimage
def resize_volume_mask(img):
"""Resize across z-axis"""
# Set the desired depth
desired_depth = 128
desired_width = 128
desired_height = 128
# Get current depth
current_depth = img.shape[0] #-1
current_width = img.shape[1] #0
current_height = img.shape[2] #1
# Compute depth factor
depth = current_depth / desired_depth
width = current_width …Run Code Online (Sandbox Code Playgroud) 我有代码,抱歉,我现在没有确切的代码.但它有效.
<iframe src="..." borderframe="0" scrolling="no" width=728px" height="90px"></iframe>
Run Code Online (Sandbox Code Playgroud)
目标是一个包含横幅代码的html文件.一切都很好.但是当我调整浏览器大小或进行最大化时.内容向左移动1个像素.所以横幅显示缺少第一个垂直1px线.并且只能看到727px.
有人有想法吗?
谢谢.
我在Java工作,我在JFrame中有一个JPanel.在那个JPanel中,除其他外,我有一个JLabel,我想让它出现并随意消失.我已经尝试将可见性设置为true/false,在JFrame和JPanel中添加和删除它,并且,在网上查看后,我尝试了验证()和无效地重新生成()无限广告.在这里可以做些什么来解决这个问题?
resize ×10
python ×4
html ×2
javascript ×2
pyqt ×2
3d ×1
callback ×1
direct3d11 ×1
directx-11 ×1
iframe ×1
java ×1
jframe ×1
jpanel ×1
numpy ×1
offsetwidth ×1
opencv ×1
pyqt4 ×1
pyqt5 ×1
pyside ×1
qtableview ×1
repaint ×1
scikit-image ×1
uwp ×1