首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当我使用属性窗口中的pixbuf选项将图像添加到gtk窗口中时,Monodevelop一直崩溃

当我使用属性窗口中的pixbuf选项将图像添加到gtk窗口中时,Monodevelop一直崩溃
EN

Stack Overflow用户
提问于 2019-05-22 14:59:31
回答 1查看 206关注 0票数 1

我正在为一个学校作业项目做一个简单的应用程序,我试图添加一个图像,但每次我这样做的时候,IDE都会崩溃,如果我设法编译了它,当我转到那个窗口时,整个程序都会崩溃。它没有给我一个错误,当我在终端中打开它时,什么也没有输出。

我尝试使用包含的图标,尝试将其导入项目目录,并尝试将其作为文件的链接进行访问,但都无济于事。

这是构建中处理图像文件的部分,但我真的不知道我在做什么,因为这是我创建的第一个gtk应用程序。如果需要,我可以提供更多的代码片段。当图像加载到程序中时,我无法提供任何代码示例,因为它会立即崩溃。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// Container child hbox6.Gtk.Box+BoxChild
            this.image1 = new global::Gtk.Image();
            this.image1.Name = "image1";
            this.hbox6.Add(this.image1);
            global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.hbox6[this.image1]));
            w6.Position = 0;
            w6.Expand = false;
            w6.Fill = false;
            // Container child hbox6.Gtk.Box+BoxChild
            this.image2 = new global::Gtk.Image();
            this.image2.Name = "image2";
            this.hbox6.Add(this.image2);
            global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.hbox6[this.image2]));
            w7.Position = 1;
            w7.Expand = false;
            w7.Fill = false;
            this.hbox3.Add(this.hbox6);
            global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.hbox6]));
            w8.Position = 0;
            w8.Expand = false;
            w8.Fill = false;
            // Container child hbox3.Gtk.Box+BoxChild
            this.hbox4 = new global::Gtk.HBox();
            this.hbox4.Name = "hbox4";
            this.hbox4.Spacing = 6;
            // Container child hbox4.Gtk.Box+BoxChild
            this.image3 = new global::Gtk.Image();
            this.image3.Name = "image3";
            this.hbox4.Add(this.image3);
            global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(this.hbox4[this.image3]));
            w9.Position = 0;
            w9.Expand = false;
            w9.Fill = false;
            // Container child hbox4.Gtk.Box+BoxChild
            this.image4 = new global::Gtk.Image();
            this.image4.Name = "image4";
            this.hbox4.Add(this.image4);
            global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.hbox4[this.image4]));
            w10.Position = 1;
            w10.Expand = false;
            w10.Fill = false;

没有错误消息,因为整个事件要么完全崩溃,要么停止响应,所以我不能提供任何类似的东西。任何帮助都将不胜感激。谢谢您抽时间见我。

EN

回答 1

Stack Overflow用户

发布于 2019-06-25 08:21:08

首先,您不需要使用设计器来完成如此简单的任务。此外,设计器总是将您绑定到给定的集成开发环境(在本例中为MonoDevelop)。图形工具包比以前直观得多,很多时候理解如何使用它们是微不足道的。

这是一个项目的全部代码,它只是在窗口中显示一个图像。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class MainWindow: Gtk.Window {
    public MainWindow()
        :base(Gtk.WindowType.Toplevel)
    {
        this.Build();


        this.DeleteEvent += (o, args) => Gtk.Application.Quit();
    }

    void Build()
    {
        var imgContainer = this.BuildEmbeddedImage();

        this.Add( imgContainer );
    }

    Gtk.Image BuildExternalImage()
    {
        return new Gtk.Image( "res/prowl.jpg" );
    }

    Gtk.Image BuildEmbeddedImage()
    {
        var pixbufImage = new Gdk.Pixbuf(
            System.Reflection.Assembly.GetEntryAssembly(),
            "CSShowImage.res.prowl.jpg");

        return new Gtk.Image( pixbufImage );
    }
}

class Ppal
{
    [System.STAThread]
    static void Main()
    {
        Gtk.Application.Init();
        new MainWindow().ShowAll();
        Gtk.Application.Run();
    }
}

要让该代码正常工作,您必须执行以下操作:

  1. 下载镜像。我下载了一个关于汽车人巡游的镜像,并将其命名为prowl.jpg,当然,你可以选择任何你想要的东西。
  2. 通过MonoDevelop在你的项目中创建一个目录(右键单击项目并选择“新建文件夹”)。
  3. 将你的镜像复制到该文件夹:右键单击新创建的文件夹(我称之为"res"),然后选择“添加文件”,当MonoDevelop询问要复制什么镜像并选择"quick properties >> copy to output directory“时,将镜像复制到该文件夹中。这将使BuildExternalImage()方法工作。如果不打算使用外部镜像,可以跳过这一步。考虑到这一点,通过这种方式,您必须使用构建操作分发镜像(在名为“res”的目录中),并选择"build executable.
  4. Right-click >> EmbbeddedResource“。这将使方法BuildEmbeddedImage()工作。镜像将在您的可执行文件中,不需要担心其他任何事情。唯一需要注意的是,在BuildEmbeddedImage中,您必须创建自己的字符串,其中包含项目名称、包含图像的目录名称和图像名称,而不是显示"CSShowImage.res.prowl.jpg“的行。例如,如果项目名为"res",创建的文件夹为“res”,图像为"myfamily.jpg",则生成的字符串将为res

如果您坚持使用设计器,则:

  1. 在MonoDevelop中的Gtk# 2.0部分中创建一个新项目,然后转到
  2. ,然后从正在设计的窗口中的工具箱中进入designer.
  3. Drop an Gtk#小部件。MonoDevelop会抱怨您使用小部件而不是容器(如VBox),然后在容器中使用小部件。继续使用图像小部件的option.
  4. Select,然后转到属性,展开“图像属性”。在pixbuf中,单击"...“按钮。转到资源文件夹。单击“添加”并选择您的图像。MonoDevelop将为您完成繁重的工作,图像将立即出现在设计器中。
  5. 单击“运行”。

老实说,MonoDevelop在第一次执行时就崩溃了,但当再次打开项目时似乎是稳定的。

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56259760

复制
相关文章
使用pydicom实现Dicom文件读取与CT图像窗宽窗位调整
为了能够在Labelme上对Dicom图像进行编辑,这里对python环境下Dicom文件的读取进行了研究。在Dicom图像中CT的窗宽窗位是一个很重要的概念,但是找了半天在pydicom中没有相关设置函数,这里跟DCMTK还不一样。但是可以根据两个tag得到CT图像的CT值,那就是(0028|1052):rescale intercept和(0028|1053):rescale slope。则按照下面的算子得到CT图像,进而就可以调整窗宽窗位了
全栈程序员站长
2022/09/14
2.4K0
使用pydicom实现Dicom文件读取与CT图像窗宽窗位调整
使枚举类型的选项在VS的属性窗里显示为中文
我们自己做的组件,一般希望它的属性在设计时能够在属性窗里显示为中文,可以在属性上添加System.ComponentModel.DisplayNameAttribute标注达到这个目的。但是,枚举的选项如何以中文的形式显示在属性窗里呢?
明年我18
2019/09/18
1.2K0
使枚举类型的选项在VS的属性窗里显示为中文
不同组织的窗宽窗位
垂体及蝶鞍区病:变窗宽宜设在200 Hu~250 Hu,窗位45 Hu~50 Hu,
全栈程序员站长
2022/06/24
7630
DICOM影像中的窗宽窗位
医学图像领域的关键技术窗技术,是CT检查中用以观察不同密度的正常组织或病变的一种显示技术,包括窗宽(window width)和窗位(window level)。由于各种组织结构或病变具有不同的CT值,因此想要显示某一组织结构细节时,应该选择适合观察该组织或病变的窗宽和窗位,以获得最佳显示。
全栈程序员站长
2022/09/07
1.5K0
窗函数
 数字信号处理中通常是取其有限的时间片段进行分析,而不是对无限长的信号进行测量和运算。具体做法是从信号中截取一个时间片段,然后对信号进行傅里叶变换、相关分析等数学处理。信号的截断产生了能量泄漏,而用FFT算法计算频谱又产生了栅栏效应,从原理上讲这两种误差都是不能消除的。在FFT分析中为了减少或消除频谱能量泄漏及栅栏效应,可采用不同的截取函数对信号进行截短,截短函数称为窗函数,简称为窗。
AIHGF
2019/02/18
1.5K0
窗函数
Matlab中窗函数的简单使用
这里主要是对窗函数的简单应用做些介绍,是在已知滤波器阶数的情况下,设计滤波器。多数情况下,在不能直接知道滤波器阶数的时候,可参考“http://www.cnblogs.com/sunev/archive/2011/11/23/2260579.html”。
AIHGF
2019/02/18
3.6K0
飘窗效果
第一种实现 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>浮窗效果</title> <style> * {
Spaceack
2020/11/04
6670
给wordpress添加title属性的鼠标气泡悬浮窗
作者:matrix 被围观: 21,653 次 发布时间:2013-09-26 分类:Wordpress 兼容并蓄 | 14 条评论 »
HHTjim 部落格
2022/09/26
9470
给wordpress添加title属性的鼠标气泡悬浮窗
BestMPRBaseVtk-009-设置默认窗宽窗位
​ 今天我们来解决一个小问题,就是让图像加载完了,按照图像自带的窗宽窗位显示,这么形容不知道是否准确,大概意思就是这样吧。目前和MITK对比如下图所示:
全栈程序员站长
2022/09/12
6780
BestMPRBaseVtk-009-设置默认窗宽窗位
破窗效应
破窗效应 / 破窗理论
宇相
2018/09/18
6840
破窗效应
java接口中方法、属性修饰符详解
java接口的修饰符:abstract(inteeface本身就是抽象的,加不加abstract都一样)。
用户7886150
2021/02/01
1.4K0
使用 Linux 自动化工具提高生产率
AutoKey 在许多 Linux 发行版中都是现成的软件包。该项目的 安装指南 包含许多平台的说明,也包括了从源代码进行构建的指导。本文使用 Fedora 作为操作平台。
用户1880875
2021/09/06
2.1K0
[经验总结] 在 windows 命令窗
在IDE里面直接执行 cpu.py文件是正常的,正常输出 CPU 信息,但放到命令窗口执行却提示 config 模块不存在
py3study
2020/01/20
5870
接口中存在的数据竞争
fmt.Printf("Ben says, \"Hello my name is %s\"\n", b.name)
用户7365393
2021/10/06
2550
接口中的变量和方法
变量默认:public static final (1)public static的 ,是所有实现类共有的 .假如可以是非static的话,因一个类可以继承多个接口,出现重名的变量,如何区分呢? (2)接口中如果可能定义非final的变量的话,而方法又都是abstract的,这就自相矛盾了,有可变成员变量但对应的方法却无法操作这些变量.
用户9854323
2022/06/25
3170
matlab函数加窗
数字信号处理的主要数学工具是傅里叶变换.而傅里叶变换研究的是整个时间域和频率域的关系。不过,当运用计算机实现工程测试信号处理时,不可能对无限长的信号进行测量和运算,而是取其有限的时间片段进行分析。做法是从信号中截取一个时间片段,然后用截取的信号时间片段进行周期延拓处理,得到虚拟的无限长的信号,然后就可以对信号进行傅里叶变换、相关分析等数学处理。无限长的信号被截断以后,其频谱发生了畸变,原来集中在f(0)处的能量被分散到两个较宽的频带中去了(这种现象称之为频谱能量泄漏)。 为了减少频谱能量泄漏,可采用不同的截取函数对信号进行截断,截断函数称为窗函数,简称为窗。 窗函数就是时域有限宽的信号。 泄漏与窗函数频谱的两侧旁瓣有关,如果两侧瓣的高度趋于零,而使能量相对集中在主瓣,就可以较为接近于真实的频谱,为此,在时间域中可采用不同的窗函数来截断信号。
FPGA开源工作室
2022/05/18
1.2K0
matlab函数加窗
tkinter 实现简单登录窗
import tkinter as tk import tkinter.messagebox import pickle # init main window(login window) window = tk.Tk() window.title('Welcome to Mofan Python') window.geometry('450x300') # welcome image canvas = tk.Canvas(window, width = 500, height = 200) image_
山海散人
2021/03/03
5610
SLAM初探(四)
OpenCV基础 这里我就不做过多的描述性问题,现在OpenCV在许多有关计算机视觉方面得到许多的应用。 OpenCV获取视频的方法及其图像转化问题 获取视频及图像的方式呢有多种多样的方式 我们知道OpenCV它本身是基于开源GUI框架GTK编写,但是在实际的使用GTK GUI的操作过程中会遇到我们不使用原有GUI窗口,需要在一个有更多操作按钮的窗口中去操作,在我搜集了众多的资料无果后的一个尝试性动作,让我得出了结果。 Mat image= video->getVideo();//此操作直接获取摄像头的图像
Pulsar-V
2018/04/18
1.1K0
黑客口中的肉鸡是什么?
今天我们来聊一聊计算机领域中的肉鸡这么个玩意。首先肉鸡是什么呢?在计算机领域中,肉鸡又被称为傀儡机,他是指被黑客成功入侵并受操控的主机。肉鸡是黑帽子黑客的致富来源,经常被拿来像白菜一样售卖,价格几分钱到几十块钱一个不等。接下来我们主要看一下肉鸡有什么危害,黑客拿肉鸡有什么用呢?
极安御信安全研究院
2023/03/15
1.2K0
黑客口中的肉鸡是什么?
MDIO接口中的高阻态
MDIO接口包括两根信号线:MDC和MDIO,通过它,MAC层芯片(或其它控制芯片)可以访问物理层芯片的寄存器(前面100M物理层芯片中介绍的寄存器组,但不仅限于100M物理层芯片,10M物理层芯片也可以拥有这些寄存器),并通过这些寄存器来对物理层芯片进行控制和管理。MDIO管理接口如下:
用户9736681
2022/05/11
9450
MDIO接口中的高阻态

相似问题

游戏窗口中的多个“窗格”

21

图像在垂直滚动窗格视图端口中消失

13

在IntelliJ窗口中显示文档窗格

11

在tmux的所有窗口中显示窗格

33

如何在框架窗口中添加滚动窗格

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文