这是一个已知的错误/问题,当父级更改时,GTK中的标签不会动态调整大小.这是一个非常烦人的小细节之一,如果可能的话,我想破解它.
我按照16软件的方法进行了操作,但根据免责声明,您无法将其调整得更小.所以我尝试了其中一个注释(set_size_request信号回调中的调用)中提到的技巧,但这导致了某种无限循环(尝试并看到).
有没有人有任何其他想法?
(您不能仅在调用期间阻止信号,因为正如print语句似乎表明的那样,问题在函数离开后开始.)
代码如下.你可以看到我的意思,如果你运行它并尝试调整窗口大小然后更小.(如果要查看原始问题,请在"连接到大小分配信号"之后注释掉该行,运行它,然后将窗口调整得更大.)
Glade文件("example.glade"):
<?xml version="1.0"?>
<glade-interface>
<!-- interface-requires gtk+ 2.16 -->
<!-- interface-naming-policy project-wide -->
<widget class="GtkWindow" id="window1">
<property name="visible">True</property>
<signal name="destroy" handler="on_destroy"/>
<child>
<widget class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="label" translatable="yes">In publishing and graphic design, lorem ipsum[p][1][2] is the name given to commonly used placeholder text (filler text) to demonstrate the graphic elements of a document or visual presentation, such as font, typography, and layout. The lorem ipsum …Run Code Online (Sandbox Code Playgroud) 我试图看看如果我用另一个图像替换某个图像,某个网页会是什么样子.每次我调整它时,我都不想上传图像,编辑网站等,而是想知道在查看远程页面时是否有办法将页面中的图像更改为本地版本.
我通常使用Firebug来调试Web开发,但我对任何其他可能执行此操作的工具持开放态度.
(除了在已部署的网站上进行动态图像交换的问题之外,搜索此内容并发现任何问题都是绝对不可能的,如果这是重复的话,请对不起.)
补充:我只是尝试替换file:///指向图像的URI(手动打开图像后从地址栏复制并粘贴),唉,它不起作用 - 图像无法更改.
我正在使用Sphinx记录Python 3项目.Sphinx文档在doc,我想README.md在我的索引中包含我的顶级内容.假设我可以使用问题#825中的指令让Sphinx解析并渲染Markdown .
如果我doc/index.rst看起来像这样:
Index
=====
Modules
-------
.. toctree::
:maxdepth: 2
.. include:: ../README.md
Run Code Online (Sandbox Code Playgroud)
... markdown被解析为reStructuredText(因为这是include指令的工作原理).这意味着大多数降价格式被忽略.
即使链接也不起作用:无法直接创建上述文档的链接doc/,任何解决方法仍然需要在reST中包含降价文档.无论如何,我真正想要的是索引中呈现的内容.
有可能以某种方式告诉Sphinx文档的一部分使用与其他部分不同的标记语言,还是更改文档部分的解析上下文?或者是否有其他方法告诉它在解析完成后将一个文档注入另一个文档?
我正在尝试在Python 3.6.5下使用Seaborn 0.9.0 绘制一些简单数据。数据只是彼此不同的分类的两个点。分类本身就是1或2。然而,当我与Seaborn绘制它,图例显示三种类型:0,1和2。
import numpy
import seaborn
import pandas
from matplotlib import pyplot
X = numpy.array([
[-1, -1, 1],
[1, 1, 2]
])
data = pandas.DataFrame(X, columns=('x','y','type'))
seaborn.scatterplot(data=data, x='x', y='y', hue='type')
pyplot.show()
Run Code Online (Sandbox Code Playgroud)
结果图显示:
我也没有使用Pandas尝试过,只是使用eg x=X[:,0], y=X[:,1], hue=X[:,2],但是结果是一样的。
Seaborn的文档是这样说的hue:
可以是分类的也可以是数字的,尽管颜色映射在后一种情况下的行为会有所不同。
但是他们没有阐明“分类”的含义,行为是什么,或行为如何不同。我还阅读了分类数据绘图教程,但没有找到答案。
在数据中使用像'1'和这样的字符串'2'只会导致错误:
AttributeError: 'str' object has no attribute 'view'
Run Code Online (Sandbox Code Playgroud)
为什么0图例中还有一个额外的“类型” ?而且,稍后,我如何拥有更有意义的类别标签?
通过阅读分类数据绘图教程,我发现:
如果您的数据具有pandas Categorical数据类型,则可以在此处设置类别的默认顺序。如果传递给分类轴的变量看起来是数字,则将对级别进行排序。但是,即使使用数字来标记数据,数据仍被视为分类数据,并在分类轴上的顺序位置(具体是在0、1,...处)绘制:
这一半解释了这里发生的事情(不是为什么会有额外的0 …
我编写了一个包含用C语言编写的子模块的Python模块:模块本身被调用foo而C部分被调用foo._bar.结构如下:
src/
foo/__init__.py <- contains the public stuff
foo/_bar/bar.c <- the C extension
doc/ <- Sphinx configuration
conf.py
...
Run Code Online (Sandbox Code Playgroud)
foo/__init__.py导入_bar以增加它,并在foo模块中公开有用的东西.它在构建时工作正常,但显然不能以未编译的形式工作,因为_bar在构建之前不存在.
我想使用Sphinx来记录项目,并在模块上使用autodoc扩展foo.这意味着我需要在构建文档之前构建项目.
由于我使用distutils构建,所以构建的模块最终会出现在一些名为dir的变量中build/lib.linux-ARCH-PYVERSION- 这意味着我不能仅仅将目录硬编码为Sphinx conf.py.
那么如何配置我的distutils setup.py脚本以在构建的模块上运行Sphinx构建器?
为了完整性,这里是调用setup('假'的东西是子类的自定义构建器build和build_ext):
setup(cmdclass = {
'fake': fake,
'build_ext_fake' : build_ext_fake
},
package_dir = {'': 'src'},
packages = ['foo'],
name = 'foo',
version = '0.1',
description = desc,
ext_modules = [module_real])
Run Code Online (Sandbox Code Playgroud) 我正在编写一个使用Matplotlib进行绘图的PyGTK/Twisted应用程序.使用FigureCanvasGtkAgg将图块嵌入到我的小部件中很容易,但是我注意到画布的背景颜色(在绘图区域本身之外)与我的应用程序的其余部分不匹配,并且字体也没有(对于标签) ,传说等).
有没有一种简单的方法让我的图表尊重用户选择的GTK主题?
我正在使用Qt 5.2.1来实现一个程序,该程序从文件中读取数据(可能是几个字节到几GB),并以依赖于每个字节的方式显示数据.我的例子是一个十六进制查看器.
一个对象执行读取,并dataRead()在读取新数据块时发出信号.信号带有一个指向QByteArray类似的指针,所以:
void FileReader::startReading()
{
/* Object state code here... */
{
QFile inFile(fileName);
if (!inFile.open(QIODevice::ReadOnly))
{
changeState(STARTED, State(ERROR, QString()));
return;
}
while(!inFile.atEnd())
{
QByteArray *qa = new QByteArray(inFile.read(DATA_SIZE));
qDebug() << "emitting dataRead()";
emit dataRead(qa);
}
}
/* Emit EOF signal */
}
Run Code Online (Sandbox Code Playgroud)
查看器的loadData插槽连接到此信号,这是显示数据的功能:
void HexViewer::loadData(QByteArray *data)
{
QString hexString = data->toHex();
for (int i = 0; i < hexString.length(); i+=2)
{
_ui->hexTextView->insertPlainText(hexString.at(i));
_ui->hexTextView->insertPlainText(hexString.at(i+1));
_ui->hexTextView->insertPlainText(" ");
}
delete data;
}
Run Code Online (Sandbox Code Playgroud)
第一个问题是如果这只是按原样运行,GUI线程将完全没有响应. …
这是一个QML文件,具有一个Dial控件和一个自定义形状并排:
import QtQuick 2.9
import QtQuick.Layouts 1.3
import QtQuick.Controls 2.3
import QtQuick.Window 2.2
import QtQuick.Shapes 1.0
Window {
id: window
visible: true
width: 400
height: 200
RowLayout {
anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter
spacing: 5
Dial {
id: dial1
}
Control {
id: dial2
implicitWidth: dial1.width
implicitHeight: dial1.height
antialiasing: true
Shape {
anchors.fill: parent
antialiasing: true
ShapePath {
strokeWidth: 1
strokeColor: dial2.visualFocus ? dial2.palette.highlight : dial2.palette.dark
startX: dial2.width/2
startY: 0
PathArc {
x: dial2.width/2
y: dial2.height
radiusX: dial2.width/2
radiusY: dial2.height/2
direction: …Run Code Online (Sandbox Code Playgroud) 我想在前面说清楚:我知道这个技巧是如何工作的,我想要的是一个明确的解释与其他人分享的链接.
C宏问题的答案之一谈到了"X宏"或"尚未定义的宏"的习语.这包括定义如下内容:
#define MAGIC_LIST \
X(name_1, default_1) \
X(name_2, default_2) \
...
Run Code Online (Sandbox Code Playgroud)
然后创建一个具有命名索引的值数组:
typedef enum {
#define X(name, val) name,
MAGIC_LIST
#undef X
} NamedDefaults;
Run Code Online (Sandbox Code Playgroud)
您可以使用不同的#definefor 重复该过程X()来创建值数组,也可以调试字符串等.
我想要一个关于如何工作的明确解释的链接,与那些熟悉C的人交往.我不知道每个人通常称之为这种模式,所以我到目前为止尝试在网上搜索它已经失败了.
(如果对SO有这样的解释,那就没事了......)
考虑这个 Pandas 数据框:
df = pd.DataFrame({
'User ID': [1, 2, 2, 3],
'Cupcakes': [1, 5, 4, 2],
'Biscuits': [2, 5, 3, 3],
'Score': [0.65, 0.12, 0.15, 0.9]
})
Run Code Online (Sandbox Code Playgroud)
IE。
User ID Cupcakes Biscuits Score
0 1 1 2 0.65
1 2 5 5 0.12
2 2 4 3 0.15
3 3 2 3 0.90
Run Code Online (Sandbox Code Playgroud)
我想整理(“融化”)这些数据,以便甜点类型是单独的观察结果。但我也想保留每个用户的分数。
melt()直接使用不起作用:
df.melt(
id_vars=['User ID'],
value_vars=['Cupcakes', 'Biscuits'],
var_name='Dessert', value_name='Enjoyment'
)
Run Code Online (Sandbox Code Playgroud)
...给出:
User ID Dessert Enjoyment
0 1 Cupcakes 1
1 2 …Run Code Online (Sandbox Code Playgroud)