小编Jma*_*man的帖子

c函数返回两种可能类型之一

我目前使用三个不同的函数来返回一个数值(一个返回一个double,另外两个返回一个long):

int main(void)
{
   // lots of code

    dRate = funcGetInterestRate();
    lMonths = funcGetTerm();
    lPrincipal = funcGetPrincipal();

    // lots of code

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

三个函数代码大约相同,所以我想合并为1个函数.我想将值标志传递给单个函数,如下所示:

  1. 如果"1"通过,确定利率,返回a double
  2. 如果"2"通过,确定贷款期限,返回a long
  3. 如果"3"通过,确定贷款本金,返回a long

我只想在调用函数时从函数返回1个值,但我想要返回的值可以是a double或a long.我想做这样的事情:

void funcFunction(value passed to determine either long or double)
{
   // lots of code

   if (foo)
      return double value;
   else
      return long value;
}
Run Code Online (Sandbox Code Playgroud)

是否有捷径可寻?

c function

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

如何使用 gtk-rs 在列表存储/树视图中右对齐数字数据

在此输入图像描述

我最近一直在学习使用 gtk-rs 制作简单的 GUI,但遇到了一个问题:数字数据在列表存储/树视图中左对齐,而我希望使其右对齐。

下面的代码是对这里的修改:https ://github.com/gtk-rs/examples/blob/master/src/bin/list_store.rs

我已经能够通过使用“.set_alignment”使列标题对齐到中心(对于日期)和右侧(对于人口和区域),但无法更改数据本身的对齐方式。

字符串数据很容易操作(我在日期项中嵌入了一个选项卡,并且它排列得很好。但是,如果我将人口和面积数据更改为格式化字符串,则在单击列标题时它们将按此排序,而不是作为数字。

非常感谢任何及所有帮助!

extern crate gio;
extern crate gtk;

use gtk::prelude::*;
use std::rc::Rc;
use std::env::args;
use gio::prelude::*;

#[repr(i32)]
enum Columns {
    State,
    Population,
    Area,
    Date,
}

fn build_ui(application: &gtk::Application) {
    let window = gtk::ApplicationWindow::new(application);

    window.set_title("List Store");
    window.set_border_width(10);
    window.set_position(gtk::WindowPosition::Center);
    window.set_default_size(300, 500);

    let vbox = gtk::Box::new(gtk::Orientation::Vertical, 8);
    window.add(&vbox);

    let label = gtk::Label::new(Some("US State Facts"));
    vbox.add(&label);

    let sw = gtk::ScrolledWindow::new(None::<&gtk::Adjustment>, None:: <&gtk::Adjustment>);
    sw.set_shadow_type(gtk::ShadowType::EtchedIn);
    sw.set_policy(gtk::PolicyType::Never, gtk::PolicyType::Automatic);
    vbox.add(&sw);

    let model = Rc::new(create_model());
    let treeview = gtk::TreeView::new_with_model(&*model);
    treeview.set_vexpand(true);

    sw.add(&treeview); …
Run Code Online (Sandbox Code Playgroud)

gtk rust gtk-rs

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

标签 统计

c ×1

function ×1

gtk ×1

gtk-rs ×1

rust ×1