我是在 linux 中构建应用程序 GUI 的新手,我发现我使用的工具没有太多与最新版本相关的教程和文档。
我正在使用 Glade3 (3.22.1) 并尝试遵循几个不同的教程,但遇到两个主要障碍:
“调色板”不见了,我留下了一些 TopLevels、Containers、Control 和 Display 下拉菜单,以及另外两个看起来是“others”和“everything else”(也就是其他库)的选项。
设计界面似乎发生了变化,这是节省空间的新“外观”。我使用的是 4K 显示器,我不需要对房地产如此严格。我使用大型显示器的原因之一是我可以立即看到我想看到的所有内容。
一季度。我可以(重新)引入调色板吗?
出现在教程调色板中的对象不一定出现在我的版本中的下拉列表中。
一个值得注意的对象是 GtkStatusbar(此时我还没有搜索或遇到其他对象)。它不会出现在任何下拉列表中,搜索“所有可用的小部件和对象”可确认该statusbar小部件不存在。
如果我保存.glade文件并直接编辑它,为状态栏对象添加相关的 XML 并重新打开项目,状态栏会出现在窗口上。我可以与它交互并分配相关属性,但我仍然无法创建新的状态栏(尽管我可以复制并粘贴我通过代码创建的状态栏)。
Q2。如何使用 Glade (3.22.1) 添加状态栏?
我在谷歌上搜索了“glade3 gtk3 gtkstatusbar statusbar deprecated”的各种组合,但我只是不知所措。任何帮助表示赞赏。
虽然我使用的是 Ubuntu 18.04,但它使用的是跨平台可用的 Glade,这不是一个特定的 Ubuntu 问题(因此没有标记为这样,也没有发布到 AskUbuntu SE 站点)。
示例文档和教程:
编辑:我已经研究这个问题几天了,但结果却是空白。在最后的努力中,我下载了一个稍旧的版本(3.20.0,因为在http://glade.gnome.org上的“最新消息”中它指出 3.22.0 是“运动整个 UI 重新设计”。我这样做了然而,为了获得左侧的调色板,它似乎是非常相同的用户界面。)
不过我确实发现,在 3.20 版中存在状态栏,而在 3.22.1 中不存在)
我正在编写一个脚本,需要用户提供一些非常简单的输入,在对此进行研究时,我陷入了两难境地,试图找出最安全的方法。
我只想要一个整数并偶然发现(我认为是)一段类似于(从内存中执行此操作)的漂亮代码:
def getNumeric(prompt):
while True:
response = input(prompt)
try:
return int(response)
except ValueError:
print "please enter a number:",
Run Code Online (Sandbox Code Playgroud)
这主要是有效的,但如果用户只是按下 [enter] 那么它就会崩溃。事实证明,我使用的是 python < 3,作者为 3+ 写了这个。所以现在我必须重写 2.7 以满足我的需要。但是我如何编写它来满足<3 和 3+ 平台的需求?
我正在写一些可以被其他人使用的东西,并希望让它成为我能做到的最便携的东西。我应该打扰吗?
顺便说一句,我正在为 Raspberry Pi 执行此操作,我应该将我的 python 升级到 3,还是将它留在原处(2.7.3)?
昨晚我和朋友遇到了一个我们试图理解的异常,但不能.当我们使用AVR组件玩ATTiny2313时,今天我在ATMega328P上复制了Arduino的完全相同的体验.
我注意到他的代码中有一个错误,他将LED设置为高(后来为低)PINB,6.我告诉他使用PORTB,6和(由于某些其他原因)根本不起作用.整个代码现在已经消失了,所以我在Ardunio C++中复制了它并得到了意想不到的结果,正确分配时一切正常,但如果分配不正确,LED会以一半的速率闪烁.这似乎是一个阶段性的问题.
在我进入代码之前,我知道你不能分配输出PIN,问题是我们尝试(错误)并试图了解它是如何工作的.
void setup(){
DDRB=0xFF;
}
void loop(){
PORTB |= 1<<5; // turns on the LED
delay(500);
PORTB &= ~(1<<5); // turns off the LED
delay(500);
}
Run Code Online (Sandbox Code Playgroud)
上面的代码是正确的,led每500ms切换一次
void setup(){
DDRB=0xFF;
}
void loop(){
PINB |= 1<<5; // turns on the LED
delay(500);
PINB &= ~(1<<5); // turns off the LED
delay(500);
}
Run Code Online (Sandbox Code Playgroud)
现在上面的代码确实偶尔会起作用.它不是每隔500毫秒打开和关闭,而是每秒打开和关闭!
我已经检查了芯片的电路图(实际上是ATMEga128-因为我这里有PDF的硬拷贝),pp66,图30,通用数字I/O.
电路指示PINx是只读的,但你显然可以设置它,虽然它似乎需要每三个设置.
有趣的是,如果你只设置PINx(如下面的代码:)
void loop(){
PINB |= 1<<5; // turns on the LED
delay(500);
}
Run Code Online (Sandbox Code Playgroud)
LED TOGGLES!每500ms.尝试清除OUTPUT不起作用,只设置它.
同样,我知道这不是OUTPUT的设置方式,我只是想了解它为什么会这样做.
我知道我很接近:
for k in my_dictionary:
#print (k, my_dict[k][0],my_dict[k][1])
for v in my_dict[k]:
print (v,my_dict[k])
Run Code Online (Sandbox Code Playgroud)
结果是:
tuple00('tuple00','tuple01')
tuple01('tuple00','tuple01')
tuple10('tuple10','tuple11')
tuple11('tuple10','tuple11')
Run Code Online (Sandbox Code Playgroud)
评论行会给我一个更好的结果
key0 tuple00 tuple01
key1 tuple00 tuple01
Run Code Online (Sandbox Code Playgroud)
但我必须通过以下方式解决这些问题:
my_dict[k][0],my_dict[k][1]
Run Code Online (Sandbox Code Playgroud)
这是丑陋的.这样做:
for k in my_dict:
for i,m in k:
print (i,m,k)
Run Code Online (Sandbox Code Playgroud)
给出错误:
for i,m in k:
ValueError: need more than 1 value to unpack
Run Code Online (Sandbox Code Playgroud)
我知道列表理解可能就是我所追求的,但我仍然无法开始理解.
我会通过循环(如上所述)或字典/列表理解来接受答案......
我真正想要的是能够选择一个Key值并使用元组作为引用对:i和m
python tuples list-comprehension python-3.x dictionary-comprehension
我想我已经跟着示例代码到了这封信,但是下面给了我一个错误.
我想继承UIButton的子类并添加一些属性,但是我从一开始就失败了.
我创建了一个子类文件.这些是我的.h/.m's:
// damButton.h
#import <UIKit/UIKit.h>
@interface damButton : UIButton
{
CGFloat _position;
}
@property (nonatomic) CGFloat position;
@end
Run Code Online (Sandbox Code Playgroud)
和
// damButton.m
#import "damButton.h"
@implementation damButton
@synthesize position = _position;
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
}
return self;
}
@end
Run Code Online (Sandbox Code Playgroud)
在我的mainviewcontroller中,我导入了我的自定义按钮,但是当我使用该属性的内置getter和setter时,我收到一个错误:
//MainViewController.m
#import "damButton.h"
// then within a method...
damButton *b = [damButton buttonWithType:UIButtonTypeRoundedRect];
[b position:5.0];
Run Code Online (Sandbox Code Playgroud)
生成此错误: No visible @interface for 'damButton' declares the selector 'position:'
我不确定我在这里缺少什么,我几乎已经逐字复制了(我想).我只想使用内置的getter/setter(现在).
我错过了什么?